Livecode performance problem

Alex Tweedly alex at tweedly.net
Fri Aug 19 19:31:00 EDT 2022


On 19/08/2022 23:32, Mark Wieder via use-livecode wrote:
>
> It is indeed faster. Here's what I came up with. I'm not sure why 2000 
> lines of text in four fields should take that long, I came up with
>
> original code: 320 ms
> array version: 21 ms
>
>    put empty into vCombined
>    put fld "A" into v1
>    put fld "B" into v2
>    put fld "C" into v3
>    put fld "D" into v4
>    split v1 by cr
>    split v2 by cr
>    split v3 by cr
>    split v4 by cr
>    put 1 into i
>    repeat for each element tLine in v1
>       put i&tab&v1[i]&tab&v2[i]&tab&v3[i]&tab&v4[i]&tab&cr after 
> vCombined
>       add 1 to i
>    end repeat

which is already quick enough that any further improvement is mainly 
academic.

But for the record:

"repeat for each line " is very efficient for a single variable, o you 
can avoid one of the four 'split's, and use the line variable to count 
your loop.

>    --   split v1 by cr
>    split v2 by cr
>    split v3 by cr
>    split v4 by cr
>    put 1 into i
>    repeat for each line tLine in v1
>       put i&tab& tLine &tab& v2[i] &tab& v3[i] &tab& v4[i] & cr after 
> vCombined
>       add 1 to i
>    end repeat
>
to trim about another 15% off the time (for my sample data, 24ms down to 
20ms.)

(and if you know that one of the four fields typically contains much 
more text (i.e. longer lines) than the others, you would choose it to 
not be split).

Alex.





More information about the use-livecode mailing list