Paul Dupuis wrote:
> Wow. I would not have expected such a significant difference. Regex
> has been around a long time and lots of smart computer science types
> has spent time coming up with ways to optimize its performance for
> pattern matching. I assumed (falsely) that regex based filters in LC
> would be on par or even superior than a custom function using chunks.
> This leads me to:
> 1) wondering if LC's hooks to whatever regex tool they are using under
> the hood is a good as it should be
> 2) planning on rewriting my code to use chunks.

One of the reasons for my seemingly-obsessive benchmarking is to learn about what goes on under the hood, and to try to anticipate it when choosing among different algos.

LC does such a good job of shielding us from what goes on under the hood that we often forget that the relationship between the number of lines we write and the number of machine instructions our scripts invoke may differ broadly depending on the statement.

My favorite example is: set the scroll of field 1 to 100 -- seems simple enough, but having written scrollbar management routines in C back in the pre-Cocoa days I learned that a *tremendous* number of low-level routines come into play with that one simple line of script. LC makes it easy to take this stuff for granted, since it does all the heavy lifting.

Same with regex.

The beauty of regex is that it's a very generalized solution. The downside of regex is that it's a very generalized solution. ;)

Generalized options can provide convenience, but often at the cost of performance.

Purpose-built solutions are usually much faster than generalized ones, and with LC's chunk expressions they're fun to write too. :)

There are times when regex will outperform chunk expressions, though, so I would caution against rewriting everything. Benchmarking is the key, and some day I will have done enough to be able to come up with a small set of useful rules as to when to use chunks and when to use regex. But at the moment, it's half hunch and half benchmarking to confirm the hunch.

 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web

use-livecode mailing list
Please visit this url to subscribe, unsubscribe and manage your subscription 

Reply via email to