Trevor DeVore wrote:

On Aug 5, 2009, at 3:05 PM, Richard Gaskin wrote:

Any thoughts on how I might optimize the array functions? Did I just overlook something obvious which would make them run faster?

Richard,

The main slowdown in your test for GetFromMainArray seems to be in transferring the data from the custom property to tDataA. This is consistent with my findings when implementing persistent data storage in the data grid.

I changed the code a bit so that the field contents and uData custom prop array were put into script locals outside of the timers. Here is what I got:

GetFromList: 30
GetFromSubArray: 244
GetFromMainArray: 27
All results the same?: true

So if your data is already in a script local then arrays seem to be faster.

Excellent sleuthing, Trevor. Confirmed: with that change I'm getting the same results. Who would have thought there could be so much overhead moving a custom property array into a variable array?

Unfortunately for my case, this data is only one of several tables stored in user documents. I could move all the data out of the stack file I'm using for the document into a global when the document is opened, and could even use a master array within the global to keep the data from different open documents separate, but that adds another layer of management and the increase in data size for a speed gain of 0.03ms per iteration.

I had hoped that I might be able to get around the need to copy the data out of the properties by using array notation directly on those properties, but alas it doesn't seem the property array syntax is yet parallel with variable array syntax as it used to be before we got multi-dimensional arrays.

I'll think this over, but so far the two methods are so close in performance that I'm inclined to stick with what's in place with chunk expressions for now.

Thanks again for finding the bottleneck in the data loading. That's valuable info.

--
 Richard Gaskin
 Fourth World
 Revolution training and consulting: http://www.fourthworld.com
 Webzine for Rev developers: http://www.revjournal.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to