in reply to Re^2: is index faster than regexp for fixed text token?
in thread is index faster than regexp for fixed text token?
I am unsure why the Ikegami machine does so well on regex. He does have a 64 bit vs 32 bit machine and I don't see why it should make so much difference, but there could be something about that 64 vs 32 bit that speeds things up a lot.Rate regexp index regexp 848/s -- -74% index 3269/s 286% --
I am running Perl 5.10 which is significantly better on regex than Perl 5.8. I suppose there could be other things related to the power of the Ikegami machine like more L2 cache.
UPDATE
I ran with longer strings to be searched and result does appear to approach the same execution time for both cases:
Rate index regexp index 470/s -- -5% regexp 494/s 5% --
This is an interesting finding. I am not sure why this happens. What I'm guessing is that when the string to be searched is relatively "small", (some ~10+ thousands of chars), index() works better (caveat: in this "search for string X" situation!) because although "dumb" it is fast. But at some point some more "computationally expensive" regex algorithm "gains ground".
This is an interesting question for which I have no general heuristic. I think it depends upon length of string to be searched, length of string that we are looking for, the data in each string and perhaps a lot more!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: is index faster than regexp for fixed text token?
by ikegami (Patriarch) on Jul 06, 2009 at 16:43 UTC | |
by Marshall (Canon) on Jul 06, 2009 at 17:12 UTC |