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

Curry Kenworthy curry at pair.com
Wed Sep 5 00:45:53 EDT 2018


LiveCode 9 (as of 9.0.1 RC 3) is significantly slower than LiveCode 6.7 
in a variety of tasks. This is a huge problem, it affects many of the 
projects I'm doing, and I'm sure others are in the same boat. Fellow 
boat members: please join my bug report/feature request below!

The slowdown can be demonstrated both in test code and in real-world 
applications. The problem(s) may be in a specific area, but the actual 
effects on running code are widespread and fairly general, impacting 
multiple areas in my testing from math and loops to text, chunks, and 
arrays. I am posting some resources tonight to help draw attention and 
evaluate this problem, and requesting that LiveCode 9 be optimized to 
achieve at least speed parity with LiveCode 6 in these areas.

(I am encouraged that some LC engine optimization impacting arrays is 
already underway by LC Mark W., but I want to emphasize and prove beyond 
doubt that several areas are affected and not only arrays. Therefore I 
hope this bug reports and test stack(s) will help to confirm whether the 
optimizations underway also solve the other areas, or whether those 
areas need further separate optimization.)

Resources below.

A) QA Bug or Feature Request:

https://quality.livecode.com/show_bug.cgi?id=21561

Report on this problem (which negatively impacts end users for existing 
features) with 2 recipes and downloads (test demo code and real world 
application). If your own app or code is affected by LC 9 performance, 
please add your CC and a comment.

B) YouTube video: LC Version "Showdown"

https://youtu.be/8uhOem46VXg

Thorough demonstration and discussion of my tests and the results, 
pitting LiveCode 6.7 against the latest release of LiveCode 9 in several 
tasks that evaluate loops, math, text appends, array access, item 
chunks, and text replace.

JavaScript code is also tested and provided to provide additional 
reference. (Thanks Richard G. for the suggestion! Very interesting results.)

C) LC Version "Showdown" demo stack:

http://curryk.com/showdown.zip

The stack used in the video. See and test the code for yourself. 
Compares 6.7 and LC 9 (or others, you can use 7 or 8 too) for speed in 
loops, math, text appends, array access, item chunks, and text replace. 
(Also has effects used in video competition; this issue has been on my 
to-do list for some time, and I wanted a stack that looks good, makes 
comparisons quick and easy, and can serve as a useful platform for 
current and future tests.)

Some buttons have right-click or shift-click alternatives, these are 
listed in tooltips. If desired, paste the JavaScript (which is 
automatically placed on the clipboard after each test) into js.do or 
another web page to compare the JS speed to LC.

BTW, I'm only days away from a new WordLib release and have been doing a 
great deal of cross-version testing with it too. That, and Mark's array 
effort, were what prompted me to make extra time for this and get it 
posted today. WordReport is also due for an update, so is WordOut, and 
performance is something I take very seriously. Beyond that, I place the 
highest importance on all client app performance too.

WordLib code uses a variety of the code areas mentioned here, some 
arrays but not relying on them heavily in the work, so I consider it a 
good balanced real-world example of the impact of LC 9 performance. It's 
pretty hard-hit for big files, because many or most operations in LC 9 
take 2x, 3x, or 4x the time compared to LC 6. (In fact I think it's 
somewhat challenging to find substantial code that is NOT hit by LC 9 
performance. I found one example in 9's favor to include in the showdown 
stack and video.)

So again I wanted to emphasize it's not just arrays - that is proven 
here beyond any doubt in downloadable code and on video. I hope the 
array optimizations might help the other areas too, but if not, they 
need attention. Thank you! :)

Best wishes,

Curry Kenworthy

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





More information about the use-livecode mailing list