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