A different take on directorywalking

Richard Gaskin ambassador at fourthworld.com
Wed Nov 11 10:47:06 EST 2015


Malte Brill wrote:
 > as the livecode solutions tend to become rather slow if there is
 > a certain amount of nesting involved, I want to come up with a shell
 > alternative to directorywalking.

I would be interested in your benchmarks.

In my own (limited) testing I've found that once we added appropriate 
error checking for inaccessible directories the many common LC routines 
floating around for this sort of thing work quite well.

Similarly, in another thread you wrote:
 > What cured the problem finally and made me not investigate any
 > further was that for that project, a replacement for libURL was used.

If that was for capabilities not found in libURL there's no other option 
yet, but in my testing of libURL vs wget for simple HTTP access I found 
that the shell overhead wound up making libURL faster by more than 20%.

Even better:  Mark Talluto recently found a significant performance 
degradation in v7+ in which his tests show other forms of variable 
manipulations to be much faster in v7+ than in v6 and earlier:
<http://quality.livecode.com/show_bug.cgi?id=16387>

Mark Waddingham is working on the specific recipe reported there now, 
and last I heard is on his way to improving the array-loading test case 
to be more on par with non-array variable loading.

Better still: Mark recently revamped the lineoffset function to greatly 
improve its performance.  In v7 the Unicode libraries afforded an 
opportunity to add a very valuable feature to lineoffset, the ability to 
use even a multi-character string as the lineDel.  However, the 
pattern-matching needed for multi-char strings is much more complex than 
for a single char which has slowed it down for the most common 
single-char use case, so now the engine uses a different method for 
single- and multi-byte chars to optimize each usage.

When these get folded into a delivered build (v8DP9 I presume) it would 
be helpful to re-check earlier benchmarks.

In the meantime, with directory crawls and HTTP it may be helpful to 
re-check benchmarks compared with shell functions even in DP8, since 
apparently a lot of optimization work has been going on in recent 
versions, as setting up the shell context is not without its own overhead.

-- 
  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  ____________________________________________________________________
  Ambassador at FourthWorld.com                http://www.FourthWorld.com





More information about the use-livecode mailing list