

Ruby takes 2min to match a regex - salimane
https://gist.github.com/salimane/8958411

======
kzrdude
Let's guess that _Regular Expression Matching Can Be Simple And Fast_ is
relevant
[http://swtch.com/~rsc/regexp/regexp1.html](http://swtch.com/~rsc/regexp/regexp1.html)

------
srd
The issue with the regex seems to be the nested * matcher in the last part,
paired with the grouping: ([\/\w \\.-]* )* (whitespace added to re to
circumvent italisizing by HN).

IIRC this was a pathological case with perl5.0 regexes as well.

Removing one of the redundant * or marking the grouping to be non-capturing
with ?: seems to fix the problem.

Looks like the regex optimizer could use some love.

------
dhfjgkrgjg
if you are using Ruby for any performance sensitive task, you are doing it
wrong. Really. Even the die hard fans acknowledge they use it for the meta-
magic-shiny-shiny rather than something that complete a given task in a
reasonable timeframe.

Ruby is slow. Dynamic languages often are.

~~~
kiallmacinnes
> Ruby is slow. Dynamic languages often are.

I'm not sure that explains the difference between PHP (for example) and Ruby
using the same regex.

PHP: 0.07s

Ruby: 114.95s

Java: 0.75s (I expect the majority of this is once off startup time rather
than java being slower than PHP once it's "up".)

Dynamic Languages are slow.. But that? That's something completely broken.

Whether or not it's ruby, his build of ruby, a hoax, or something totally
unrelated to Ruby that's causing this 1600x slowdown is up for debate though..

~~~
almosnow
b-b-but you could express it in any way you'd like, you know like

compute.this.regex.now()

haha! how cool is that! it's like I'm talking with the computer LOL
programming is so much fun when you don't have to use those "old languages"

