Making Revolution faster with really big arrays
Dennis Brown
see3d at writeme.com
Wed Apr 27 11:49:20 EDT 2005
Sorry to disappoint Rob,
Make your script actually do some work and it runs a lot slower. I
added the following two handlers to my menu button and the results
were:
23 seconds to init the array and 20 sec to process (on a 1.8GHz G5). I
have to add the array initialization time to your example because the
arrays in my example are initially read from a .csv disk file, and must
be converted into a keyed array first. I don't think you can beat the
repeat for each, but I would certainly like to see it if you could.
Dennis
on init5
put empty into gTestArrayX2
put empty into gTestArrayY2
repeat with i = 1 to 1000
repeat with j = 1 to 1000
put j into gTestArrayX2[i,j]
put j into gTestArrayY2[i,j]
end repeat
end repeat
put "Init5:"
end init5
on Method5 -- Add lines using keyed arrays
put 0 into total
repeat with i = 1 to 1000
repeat with j = 1 to 1000
add gTestArrayX2[i,j]+gTestArrayY2[i,j] to total
end repeat
end repeat
put total&&"Keyed (Method5): "
end Method5
On Apr 27, 2005, at 10:46 AM, Rob Cozens wrote:
> on mouseUp
> global gTestArrayX,gTestArrayY
> if gTestArray is empty then
> repeat with i = 1 to 1000
> repeat with j = 1 to 1000
> put j into gTestArrayX[x,y]
> end repeat
> end repeat
> put gTestArrayX into gTestArrayY
> end if
> put the long seconds into startTime
> Method5
> get the long seconds
> answer "Elapsed time ="&&(it-startTime)&&"seconds."
> end mouseUp
>
> on Method5 -- Add lines using keyed arrays
> global gTestArrayX,gTestArrayY
> put 0 into theTotal
> repeat with i = 1 to 1000
> repeat with j = 1 to 1000
> add gTestArrayX[x,y]to theTotal
> add gTestArrayY[x,y]to theTotal
> end repeat
> end repeat
> put theTotal&&"Keyed Method"
> end Method5
More information about the use-livecode
mailing list