strip chars
Richard Gaskin
ambassador at fourthworld.com
Fri Jul 25 14:24:13 EDT 2008
J. Landman Gay wrote:
> I had a discussion with Mark Waddingham about this when I was preparing
> my RevLive session on working with text. There is no absolute "faster"
> method when comparing regex commands with repeat loops. It all depends
> on what's in the data, and the engine is optimized differently for each
> type of search. Data that contains many pattern matches will run faster
> with a regex command than with a repeat loop; data that contains fewer
> patterns will run faster in a loop. The best way to determine which
> method is optimal for any particular stack is to run several tests on
> representative data and see which is more appropriate.
Well said.
I hope I didn't give the impression that "repeat for each" is always
faster than RegEx. The criteria Mark outlined states the case nicely,
depending on the data and the operations being performed on it.
My only point was that sometimes writing a few extra lines of code can
save clock cycles at runtime. This may be counter-intuitive, since in
most cases the more work you can hand off to the engine rather than
custom script the better.
But the beauty of RegEx is its seductively concise syntax, which often
masks the complexity of what the engine does with it. RegEx is a fairly
complex chunk of code under the hood, but if you're doing a very complex
task it can be well suited to handling it more efficiently than
brute-force alternatives.
For simpler tasks, the engine's "repeat for each" and "put...after" are
very fast operations, allowing one to avoid the overhead of the RegEx
subsystem for a good many tasks.
The trick is finding the precise dividing line, the code complexity/data
complexity/depth ratio that benefits one method over another. If there
was a quantified formula for that it would be handy; anyone have a few
days available to craft the tests which would give us that ratio? :)
--
Richard Gaskin
Managing Editor, revJournal
_______________________________________________________
Rev tips, tutorials and more: http://www.revJournal.com
More information about the use-livecode
mailing list