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