Making Revolution faster with really big arrays

Lynch, Jonathan bnz2 at cdc.gov
Fri Apr 29 09:52:57 EDT 2005


How hard would it be to create a math and array processing external for
RunRev?

This would be useful for numerous things, including complex image
processing.

It would need to do two things:
1) allow the user to pass a script (like in C) for processing the array
to the external

2) send the array(s) itself to the external, which then uses the
previously sent script to process that array(s) and return the result.


-----Original Message-----
From: use-revolution-bounces at lists.runrev.com
[mailto:use-revolution-bounces at lists.runrev.com] On Behalf Of Frank D.
Engel, Jr.
Sent: Friday, April 29, 2005 9:30 AM
To: How to use Revolution
Subject: Re: Making Revolution faster with really big arrays

-----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