How do you handle the poor performance of LC 7?

Mark Waddingham mark at livecode.com
Fri May 29 12:29:28 EDT 2015


> Bad thing was that the team wanted to see „real live scenarios“ (which
> most of my benchmark stacks are, just boiled down to the core of the
> problems as I found them).

Yes - 'real world scenarios' are important - posting a small piece of 
code and running it 10,000 times just tells you how long that piece of 
code takes to run. It doesn't tell you the context, the purpose or 
(indeed) whether it is *useful* for it to run exceptionally fast (the 
real world reality is that optimisation is time consuming and difficult 
so you want to be absolutely sure the work is of actual benefit before 
you undertake it). (More importantly, out of context, it is not possible 
to see whether the code is necessary at all - there might be that it 
could be done in a far more efficient way by stepping back one level and 
changing approach; and *that* completely changes the equation).

Anyway, I would point out that the forum post which was pointed out is 
actually quite stale. I did a significant amount of analysis of the 
'simpleArrayTest' code and posted my findings on a different thread 
(which, indeed, might well have been an error on my part!). The relevant 
posts are:

http://forums.livecode.com/viewtopic.php?f=66&t=23387#p121566
http://forums.livecode.com/viewtopic.php?f=66&t=23387#p121574
http://forums.livecode.com/viewtopic.php?f=66&t=23387#p121605

The important thing here (which reinforces me saying 'real world 
scenarios' are important) is that if my goal was to optimise the engine 
to make simpleArrayTest fast then I could. Indeed, it would be possible 
to make it take virtually no time at all since it isn't actually doing 
anything - the subtlety of missing out the key step of what the 
(numeric) keys are being sorted by completely changes the intent of the 
code. There-in lies the danger with synthetic tests.

So, anyway, I'm posting this for two reasons.

The first is to reinforce the fact that distilled real world examples 
with real world data and real world context (i.e. what the code is 
trying to achieve) are important as it ensures we can choose were we 
spend our energy wisely.

The second is to say please do help us find out what the most important 
places to optimise are. If you have tight loops which do data-processing 
in your apps *and* you are finding them significantly slower, let us 
know, work with us to distill them down into an easily runnable snippet 
of code with good data to run them on so we can take the time to analyse 
them and influence where the optimisation really needs to be.

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list