Speed of LCB

Richard Gaskin ambassador at fourthworld.com
Tue May 10 11:58:45 EDT 2016


David Bovill wrote:

 > Richard mentioned that LCB can be / is magnitudes slower than Livecode
 > script for certain tasks?

I don't believe I have sufficient data to have made such a specific 
claim.  If I did I was mistaken, as I've not seen enough scripts 
offering equivalent functionality written in both LC Script and LC 
Builder to have been able to provide guidance that precise.

A few weeks ago I did reply to Monte's question here about whether to 
write a library in Script or Builder, and I noted that if the primary 
consideration were execution speed (development speed had already been 
addressed) LC Script would seem the favorable choice.

This was based on two pieces of anecdotal information, one of which I've 
learned is questionable in terms of direct comparison:

- "LiveCode Builder performance improvements" is in the "Planned"
    section of the Roadmap, a good place for it given that Builder
    just premiered in v8 and there's the old adage about premature
    optimization.

- I had run one test in a field validation library which is available
   as both LC Builder and LC Script:
   <http://forums.livecode.com/viewtopic.php?f=16&t=26653>

I was discussing the latter with Peter recently and he reminded me that 
LC Builder doesn't yet have regex support.  So while some chunk 
expressions in LC Script outperform some regex operations, in that case 
it seems likely that regex may play a strong role in the measurable 
performance benefit of LC Script in the one function I benchmarked from 
that library.

So until someone writes a set of tests that are truly equivalent in LS 
Script and LC Builder, any performance benefit one way or another is 
unknowable.

Since optimization of LC Builder is already on the Roadmap, and the need 
for optimization of LC Script is both more pervasive in terms of 
affected users and well known by the team, for myself I'd wait until 
both optimization efforts are completed before spending too much time 
with benchmark comparisons between them.

That said, if someone has an immediate need for such a comparison I'd be 
curious to see the scripts and the results.


 > Perhaps it's time to look at a speed comparison between various ways
 > to encode and decode JSON in Livecode.

Neither LC Script nor LC Builder will likely outperform the C++ used in 
available JavaScript engines.

Ideally that optimized code in machine-compiled form would become 
available to us, both for rebustness and performance as JSON's role in 
daily work continues to expand.

I would imagine Monte's external will outperform any scripted 
implementation.


 > I thought jsonImport would wrap a C library - but looking at the code
 > on GitHub
 > 
<https://github.com/livecode/livecode/blob/develop/extensions/libraries/json/json.lcb>it's
 > all native LCB I think. That would make no sense if LCB was slow?

My (likely naive) hope is that LC Builder's tighter internal structure 
will one day lend itself to becoming machine compilable.  I can dream, 
can't I? :)


 > Does anyone have a speed testing app / framework - in the spirit of
 > open source I'd rather not keep rollin my own :)

I do a lot of benchmarking, but my needs are modest so I have no 
framework per se beyond a simple script I reuse, similar to the variant 
in this post:

Project: Performance Benchmarking Toolkit
<http://forums.livecode.com/viewtopic.php?f=67&t=22072&hilit=benchmark#p113636>

In fact, Malte's thread there may be a good place to continue the 
discussion toward a common, more generalized benchmarking framework.

-- 
  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  ____________________________________________________________________
  Ambassador at FourthWorld.com                http://www.FourthWorld.com





More information about the Use-livecode mailing list