Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Regexp-engine: ruby vs. perl

Reply
Thread Tools

Regexp-engine: ruby vs. perl

 
 
Axel Schmalowsky
Guest
Posts: n/a
 
      07-06-2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello list,

I've got a question about ruby's regexp-engine: I'm wondering why ruby's
regexp-engine is soo much slower than perl's.

My test file looks like this (status.dat from nagios):

<status-type> {
key=value
... ~20 further key=value pairs
}

This file's size is about 100MB.

[perl -- v5.8.8]
time perl -wnl -00 -e 'print if /host_name=monslave\d+/ and
/service_description=load/ and /servicestatus\s+{[^}]+}/m'
/tmp/status.dat >/dev/null
perl -wnl -00 -e /tmp/status.dat > /dev/null 0.90s user 0.11s system
51% cpu 1.946 total

[ruby19 -- ruby 1.9.1p129 (2009-05-12 revision 23412) [i686-linux]]
time ruby19 -wnl -00 -e 'print if /host_name=monslave\d+/ and
/service_description=load/ and /servicestatus\s+{[^}]+}/m'
/tmp/status.dat >/dev/null
ruby19 -wnl -00 -e /tmp/status.dat > /dev/null 5.13s user 0.15s system
50% cpu 10.449 total


[ruby18 -- ruby 1.8.7p5000 (2009-02-19) [i686-linux]]
time ruby18 -wnl -00 -e 'print if /host_name=monslave\d+/ and
/service_description=load/ and /servicestatus\s+\{[^}]+\}/m'
/tmp/status.dat >/dev/null
ruby18 -wnl -00 -e /tmp/status.dat > /dev/null 3.93s user 0.05s system
48% cpu 8.153 total

So, both versions of ruby are slower than perl and I'm wondering why.

I'd like to integrate ruby in my daily work (it's actually a
wonderful/beatiful language) it's hard to justify when things like the
trivial regexp above is about a factor of 4-5 slower than in perl.
And writing/using regexps is part of my daily work.


Thanks

- --
Freundliche Grüße / Kind regards

Axel Schmalowsky
Platform Engineer
___________________________________

domainfactory GmbH
Oskar-Messter-Str. 33
85737 Ismaning
Germany

Mobil: +49 (0)176 / 10246727
Telefon: +49 (0)89 / 55266-356
Telefax: +49 (0)89 / 55266-222

E-Mail: http://www.velocityreviews.com/forums/(E-Mail Removed)
Internet: www.df.eu

Registergericht: Amtsgericht München
HRB-Nummer 150294, Geschäftsführer:
Tobia Sara Marburg, Jochen Tuchbreiter
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkpSEsIACgkQsuqpduCyZM1hdgCguZab/bhqUBpyCLbEKvIoM2nj
NigAn1pvoVHCzGNIUve+0NgcYprlKCeZ
=tZ+c
-----END PGP SIGNATURE-----


 
Reply With Quote
 
 
 
 
Caleb Clausen
Guest
Posts: n/a
 
      07-06-2009
On 7/6/09, Axel Schmalowsky <(E-Mail Removed)> wrote:
> I've got a question about ruby's regexp-engine: I'm wondering why ruby's
> regexp-engine is soo much slower than perl's.


Just guessing here, but usually when regexes are slow it's because of
backtracking. Since it looks like you don't need any backtracking in
this little script, you might try throwing in some (?> ) around your
repetitions. (And yes, perl doesn't require this hack to be fast.
Perl's probably applying it for you automatically... perl's regex is
smarter than ruby's; what can I say?) HTH

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
FAQ 2.17 What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? PerlFAQ Server Perl Misc 0 04-04-2011 10:00 PM
FAQ 1.4 What are Perl 4, Perl 5, or Perl 6? PerlFAQ Server Perl Misc 0 02-27-2011 11:00 PM
FAQ 2.17 What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org? PerlFAQ Server Perl Misc 0 02-03-2011 11:00 AM
FAQ 1.4 What are Perl 4, Perl 5, or Perl 6? PerlFAQ Server Perl Misc 0 01-23-2011 05:00 AM
Perl Help - Windows Perl script accessing a Unix perl Script dpackwood Perl 3 09-30-2003 02:56 AM



Advertisments