From: David Garamond Date: 2002-10-07T12:45:55+09:00 Subject: regex speed i am noticing ruby is much slower than perl when matching patterns with two or more quantifier (+ or *). consider this string: $ ruby -0 -ne 'print "A"*3,"\n"*10000,"B"*10,"\n"*10000' > str and matching this string: $ perl -0 -ne'print 1 if /A.+\n+B/s' str # 0m1.682s $ ruby -0 -ne'print 1 if /A.+\n+B/m' str # 0m12.468s $ perl -0 -ne'print 1 if /A.+\n.+\nB/s' str # 0m1.368s $ ruby -0 -ne'print 1 if /A.+\n.+\nB/m' str # 0m11.427s php (pcre) speed is somewhere in between. of course, with patterns like /A.+\n+.+B/ or those with more quantifiers both become very slow, but i suspect perl is still faster then ruby especially when there are fewer ".+" and more "SINGLECHAR+" subpatterns. i even have one case where perl takes less than a second and ruby takes more than five minutes (i don't know for sure, i interrupted the process so ruby never finished). note that i'm not implying anything though, because i understand perl's regex engine has undergone a long period of tweaking and optimization. -- dave ps: using ruby 1.6.7 vs perl 5.8.0 on linux