How to use an array to solve the following...
Kay C Lan
lan.kc.macmail at gmail.com
Tue Feb 21 04:22:49 EST 2012
On Tue, Feb 21, 2012 at 2:09 PM, Dick Kriesel <dick.kriesel at mail.com> wrote:
> On Feb 20, 2012, at 9:37 PM, Kay C Lan wrote:
>
> > Anyone want to test the speed of finding data in a 1000000 line variable
> > using char -1 of word -1 of item -1 of line -1?
>
> Hi, Kay. Sure. How do I get the script?
>
> I'd guess that almost all the time goes into the line -1, and within that
> line there are so few items and words and chars that the engine will eat
> them in an instant, at least relatively speaking.
>
> The suggestion was more tongue-in-cheek. And yes you are correct for as
Geoff clearly stated, it all comes down to size.
If you want to poke the rattlesnake though, here is a script to test the
difference between forward referencing and backward (-1) referencing.
For safety reasons it's currently set to only '10', that's 10 lines, of 10
items of 10 words of 10 char.
If you'd like to change that to 1000, be my guest, but I don't think you
are going to prove anything we don't already know; backwards referencing is
slower than forward referencing:
tStore is 10 lines of 10 items of 10 words of 10 chars created in 2ms
Searching tStore 10000 times
Finding using forward direct reference = 141ms
Finding using -1 direct reference = 234ms
Oh, and if you are foolish enough to change that 10 to a 1000, by my
calculations we'll not hear from you for 200 DAYS! 100 should take about 30
min. And you volunteered for a million!
on mouseUp
put 10 into tRepeats
put the millisec into tStartTime
repeat tRepeats times --lines
repeat tRepeats times --items
repeat tRepeats times --words
put " " after tStore
repeat tRepeats times --chars
put "a" after tStore
end repeat
end repeat
put "," after tStore
end repeat
put cr into char -1 of tStore
end repeat
put the millisec into tEndTime
put "tStore is " & tRepeats & " lines of " & \
tRepeats & " items of " & tRepeats & \
" words of " & tRepeats & " chars created in " & (tEndTime -
tStartTime) & "ms" & cr into msg
put 10000 into tCycles
put "Searching tStore " & tCycles & " times" & cr after msg
put the millisec into tStartTime
repeat tCycles times
put char tRepeats of word tRepeats of item tRepeats of line tRepeats
of tStore into tStore2
end repeat
put the millisec into tEndTime
put "Finding using forward direct reference = " \
& (tEndTime - tStartTime) & "ms" & cr after msg
put the millisec into tStartTime
repeat tCycles times
put char -1 of word -1 of item -1 of line -1 of tStore into tStore2
end repeat
put the millisec into tEndTime
put "Finding using -1 direct reference = " \
& (tEndTime - tStartTime) & "ms" & cr after msg
end mouseUp
More information about the use-livecode
mailing list