Slow LC 9 Performance - Test Stack, Video, QA Report

Curry Kenworthy curry at pair.com
Fri Sep 7 21:55:06 EDT 2018


Jerry:

 > Are the math routines doing unnecessary unicode interpretation?

Mark:

 > Doing type conversion on the strings-that-are-not-strings
 > and then getting to the math functions.

You guys might be right, but I doubt it. Here's one reason why. I took 
some care to make the math test a true math test.

Notice in Root Loops:

local sQty=1234567
add 0 to sQty --> make it a true number*
put 0 into n
repeat with i=1 to sQty
   add sqrt(i) to n
end repeat

* So sQty is already binary when the loop starts.

The "1" is a string, but that only happens once and shouldn't matter. 
(In fact I started out with stuff like t1 just to be sure, and 0+0 into 
n, but it made no difference so I took it out.

After one loop at most, i and n are now binary and should stay that way. 
Sqrt is acting upon i (binary), adding the result (binary) to n (binary) 
and comparing i to sQty (binary) so in theory no conversion should be 
taking place until the repeat is over. So in theory we're really testing 
the math between versions and not the conversion.

Second reason: because (perhaps ironically) it turns out the text 
portions of LC, other than chunks, are actually performing better on 
tests than other parts. It's not my place to speculate, but maybe the 
attention given to the text handling code during Unicode did a lot of 
good! But I don't want to speculate too much; I'd better stick more to 
the stats. :)

Best wishes,

Curry Kenworthy

Custom Software Development
LiveCode Training and Consulting
http://livecodeconsulting.com/




More information about the use-livecode mailing list