Making Revolution faster with really big arrays

Dennis Brown see3d at writeme.com
Fri Apr 29 10:06:09 EDT 2005


Frank,

Your earlier reply did not make it through.
This is kinda what I thought would be the case, even though I was 
hoping for better.  It seems that the way to go is to use another 
compiled language for the number crunching and Rev for the UI.  This is 
doable in my case because I write out all the intermediate files as 
.csv arrays.  I have no experience with which compiled languages might 
be easy to read in the array from a file, do a bunch of math, and then 
write out a new array that Rev an read in and display.  Time to start 
looking.

Dennis
On Apr 29, 2005, at 9:30 AM, Frank D. Engel, Jr. wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Did my earlier reply even make it through?
>
> I'm not seeing it on the list.  Transcript is actually faster than 
> what I was able to come up with for PostgreSQL -- much faster, in 
> fact.
>
> Ada is WAY faster than either one of them -- a fraction of a second 
> for this test.
>
> On Apr 29, 2005, at 8:20 AM, Dennis Brown wrote:
>
>> Read the earlier versions of this thread for the fast methods.  This 
>> example is just for a specific test between Transcript and PostgreSQL
>>
>> Dennis
>>
>> On Apr 29, 2005, at 6:24 AM, Wouter wrote:
>>
>>>
>>> On 28 Apr 2005, at 17:59, Dennis Brown wrote:
>>>
>>>
>>>> Frank,
>>>>
>>>> This is a simplified algorithm that I think would best translate 
>>>> directly between Transcript and PostgreSQL for a time trial.  Just 
>>>> make sure the PostgreSQL code is an item by item algorithm also.
>>>>
>>>> Thanks,
>>>> Dennis
>>>>
>>>> Transcript output on my machine:  1,000,000 Element Sum = 500500000 
>>>> Elapsed Time = 11.467659 seconds.
>>>>
>>>> on mouseUp
>>>>   global gTestArray
>>>>   if number of lines of the keys of gTestArray is not 1000000 then 
>>>> --already done the init
>>>>     put empty into gTestArray --start with an empty a variable
>>>>     repeat with x = 1 to 1000
>>>>       repeat with y = 1 to 1000
>>>>         put x into gTestArray[x,y]
>>>>       end repeat
>>>>     end repeat
>>>>   end if
>>>>   --
>>>>   put the long seconds into st
>>>>   Method6
>>>>   get the long seconds
>>>>   put " Elapsed Time ="&&(it - st)&&"seconds." after msg
>>>> end mouseUp
>>>>
>>>> on Method6 -- Add elements using keyed arrays
>>>>   global gTestArray
>>>>   put 0 into total
>>>>   repeat with x = 1 to 1000
>>>>     repeat with y = 1 to 1000
>>>>       add gTestArray[x,y] to total
>>>>     end repeat
>>>>   end repeat
>>>>   put "1,000,000 Element Sum = "&total
>>>> end Method6
>>>> -- 
>>>>
>>>
>>> Hi again with a little addition,
>>>
>>> The initialization of the test array takes about 36 seconds.
>>> Following version does the same in much shorter time:
>>>
>>> on mouseUp
>>>   put the long seconds into zap
>>>   --if number of lines of the keys of gTestArray is not 1000000 then 
>>> --already done the init
>>>   put empty into gTestArray --start with an empty a variable
>>>   repeat with i = 1 to 1000
>>>     put i&comma after x
>>>   end repeat
>>>   repeat 1000
>>>     put x after gTestArray
>>>   end repeat
>>>   split gTestArray by comma
>>>   put the long seconds - zap
>>>   --end if
>>>   put the long seconds into st
>>>   Method6
>>>   get the long seconds
>>>   put " Elapsed Time ="&&(it - st)&&"seconds." after msg
>>> end mouseUp
>>>
>>> In this case the initialization takes about 10 seconds on the 
>>> slowbook
>>> _______________________________________________
>>> use-revolution mailing list
>>> use-revolution at lists.runrev.com
>>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>>
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>>
> - -----------------------------------------------------------
> Frank D. Engel, Jr.  <fde101 at fjrhome.net>
>
> $ ln -s /usr/share/kjvbible /usr/manual
> $ true | cat /usr/manual | grep "John 3:16"
> John 3:16 For God so loved the world, that he gave his only begotten 
> Son, that whosoever believeth in him should not perish, but have 
> everlasting life.
> $
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.4 (Darwin)
>
> iD8DBQFCcjbd7aqtWrR9cZoRAsWFAJ90AUksikgIFvNGJO7LAjozvn1aPgCeJ8+E
> yOYp6RJFKwtMPJttHbmw4ws=
> =PjBb
> -----END PGP SIGNATURE-----
>
>
>
> ___________________________________________________________
> $0 Web Hosting with up to 200MB web space, 1000 MB Transfer
> 10 Personalized POP and Web E-mail Accounts, and much more.
> Signup at www.doteasy.com
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>



More information about the use-livecode mailing list