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