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