When does a Stack Actually Die in the IDE???

David Burgun dburgun at dsl.pipex.com
Tue Apr 18 12:02:55 EDT 2006


On 18 Apr 2006, at 16:29, Mark Smith wrote:

> I time things like this by putting them in a loop:
>
>
> put the millisecs into stTime
> repeat 10000 -- for example
>   put the short name of this stack into myStackName
> end repeat
> put the millisecs - stTime
>
> on my machine, this takes 11 millsecs.
>
> But where the engine seemed slower than string slicing, I was  
> passing the long id of an object to a function, and in that case,  
> parsing the ID seemed to be quicker than 'get the short name of..',  
> by a factor of 3 or 4. Obviously, this would only matter if you  
> were doing something many thousands of times, but you said you were  
> concerned about it being slow... :)

Yes, I am! This is called in a loop and I really want to get he  
maximum speed out of it

I just ran the following code:

constant kRepeatCount=10000

on mouseUp
   local myStartTime
   local myEndTime
   local myStackName
   local myShortNameTime1
   local myShortNameTime2
   local myShortNameTime3
   local myRepeatTime
   local myStackLongID
   local myStackFileName

   --
   --  Calculate the time for just the repeat loop
   --
   put the millisecs into myStartTime
   repeat kRepeatCount
   end repeat
   put the millisecs - myStartTime into myRepeatTime

   --
   --  Calculate the time for getting the short name of this stack
   --
   put the millisecs into myStartTime
   repeat kRepeatCount
     put the short name of this stack into myStackName
   end repeat
   put the millisecs - myStartTime into myShortNameTime1


   put the long id of this stack into myStackLongID
   put the millisecs into myStartTime
   repeat kRepeatCount
     put the short name of myStackLongID into myStackName
   end repeat
   put the millisecs - myStartTime into myShortNameTime2

   put the fileName of this stack into myStackFileName
   put the millisecs into myStartTime
   repeat kRepeatCount
     put the short name of stack myStackFileName into myStackName
   end repeat
   put the millisecs - myStartTime into myShortNameTime3

   put myRepeatTime && myShortNameTime1 && myShortNameTime2 &&  
myShortNameTime3
end mouseUp

The figures I got are as follows:

1 7 58 12

so it looks like dereferencing the stack long ID is taking a really  
long time in comparison with getting the stack short name via the  
"this stack" syntax (which is what I guessed), but I was a bit  
stunned that doing it via the file name is way quicker than using the  
long id.

Weird, huh?
All the Best
Dave




More information about the use-livecode mailing list