More on IDE vs Standalone Performance issues

Peter Haworth pete at mollysrevenge.com
Tue Nov 9 13:13:55 EST 2010


Spent the last day or so trying to get some data to track this problem  
down by inserting code to write details of the time taken for various  
chunks of code to execute into a text file so I could see what was  
going on.  I narrowed it down to a command that loads the text  
property of an option button by executing an SQLite SELECT statement  
that is defined in a custom property for the button, then setting the  
text property of the button to the resulting data.

I executed the code using exactly the same data in the same database  
both in the IDE and the standalone.

Here's a snippet from the debug file relating to the loading of one  
option button in the IDE:

Starting loadOneList button "DB_RcvblsAc"
	0	Start processing SELECT...
	1	End processing SELECT ...
	1	Start setting menu text
	1	End setting menu text

The number at the start of each line is the number of milliseconds  
since the start of the loadOneList command.

Now here is a same snippet taken from the debug file created by the  
standalone for the same button:

Starting loadOneList button "DB_RcvblsAc"
	731	Start processing SELECT...
	976	End processing SELECT...
	976	Start setting menu text
	2196	End setting menu text

As you can see, the time taken between each display is hundreds of  
times more than in the IDE in every case.  It's not limited to just  
one snippet of code, it's universal.  Getting through loadOneList  
takes roughly 1 millisecond in the IDE and more than 2 seconds in the  
standalone.

Here's the code that is executed between the "Starting loadOneList"  
message and the "Start processing SELECT" message:

if pselection is empty then
       if "listValues" is among the lines of the customKeys of  
myControl then
          put the listValues of myControl into tlistspec
       else
          put the text of myControl into tdata
       end if
    else
       put pselection into tlistspec
    end if
    if tlistspec is not empty then
       repeat for each line myLine in tlistspec

I stepped through the code in debug to make sure it didn't head off in  
unexpected directions (eg setProp/getProp handlers) and there was  
nothing of that nature. The writing of the debug information takes  
some time but that should be the same overhead in the IDE and the  
standalone.

Help!

Pete Haworth











More information about the use-livecode mailing list