Fast/slow code example (was: Re: compileIt for revolution?)

Eric Chatonet eric.chatonet at sosmartsoftware.com
Fri Jun 24 05:01:49 EDT 2005


Hi Christian,

Le 24 juin 05 à 10:21, Langers Christian a écrit :

> Could you, please, give us (newbies/intermediate scriptesr) some  
> examples of fast/slow script code ?

They would be too many :-)
In fact, the problem is often more an architecture issue than a  
simple code issue.
But here is one tiny trivial example among thousands to give you some  
clues:

on CheckList
   repeat with i = 1 to the number of lines of fld "List1"
     set the itemDel to tab
     put item 2 of line i of fld "List1" & cr after fld "List2"
   end repeat
end CheckList

Main errors in the above 4 lines are:
manipulate data directly from a field (a lot of work for the engine)
use the "repeat with i" form slower than the "repeat for each" form  
(especially noticeable with long lists)
force a screen redraw at each repetition (that's the must for slowing  
down)
set the itemDel unnecessarily at each repetition

The result with 1000 lines: more than 13 seconds...

Better code:

on CheckList
   local tList, tLine, tNewList
   -----
   put fld "List1" into tList
   set the itemDel to tab
   repeat for each line tLine in tList
     put item 2 of tLine & cr after tNewList
   end repeat
   put tNewList into fld "List2"
end CheckList

manipulate data into a variable
use the "repeat for each" form
use one screen redraw only
set the itemDel only when needed

The result with 1000 lines: less than 20 milliseconds!
650 times faster...

Keep in mind that to answer correctly your request, this post should  
be a 300 pages book :-)
May be Dan wrote it?

Best Regards from Paris,

Eric Chatonet.
----------------------------------------------------------------
So Smart Software

For institutions, companies and associations
Built-to-order applications: management, multimedia, internet, etc.
Windows, Mac OS and Linux... With the French touch

Free plugins and tutorials on my website
----------------------------------------------------------------
Web site        http://www.sosmartsoftware.com/
Email        eric.chatonet at sosmartsoftware.com/
Phone        33 (0)1 43 31 77 62
Mobile        33 (0)6 20 74 50 86
----------------------------------------------------------------



More information about the use-livecode mailing list