Slowdown when putting symbols into image data

Alex Tweedly alex at
Thu Sep 11 00:09:11 CEST 2014

On 10/09/2014 19:54, J. Landman Gay wrote:
> On 9/10/2014, 1:00 PM, William Prothero wrote:
>> Jacqueline: But…. a byte is a byte is 8 bits, unicode may be 2 bytes
>> per char, or not, right? I don’t see where unicode would come into
>> simple byte addressing. But then, you may be right that somehow
>> unicode stuff has gotten into the mix somehow.
> I'm not smart enough to know what's going on under the hood, but since 
> Alex was benchmarking strings, and since Unicode is the main change to 
> those in LC 7.0, I can only think they're related somehow.
Thing is, I wasn't trying to benchmark strings, I was trying to 
benchmark byte operations :-)

I thought that by using "byte X to Y of ..." that I was using "just" 
bytes, not strings - and therefore not Unicode.

But Ali has already produced a fix giving significant speed-up (!!) and 
in his explanatory comment in the bug report he describes how my test 
code required a type conversion on each assignment (because I was 
inadvertantly making the variable be a character string to start with). 
So his fix gives a big improvement - and then (using a simple script 
change in the test example) he can gain another 40% improvement.

I am absolutely blown away by this responsiveness !!

Unfortunately, until his fix is included (due to be in the next build), 
his suggested script change doesn't help - so I'm not able to do any 
further (useful) testing on this part of performance. It looks like 
between his code change plus his suggested script change, the 
performance hit reduces to a mere 7X - still (IMHO) a pretty high 
number, but hopefully good enough that we can live with the performance 
impact for now.

I'll re-test once RC2 comes out, and in the meantime I think I should 
play around with some more performance testing of other areas of the code.

-- Alex.
P.S. Thanks again to Ali - I can hardly believe this level of 

More information about the use-livecode mailing list