On 10/09/2014 00:17, Alex Tweedly wrote:
 I'll go experiment ....

-- Alex.
Experimenting with copying a block of bytes in 7.0.0 RC1

Script is included in its entirety below - but basically it creates a block of 1000 lines, 27K chars/bytes It then repeatedly copies over a section of 104 bytes, or 104 chars or 4 lines (i.e. 104 chars)

As expected, copying by line is slower than by char or byte, and becomes increasingly slower as we choose lines further into the data.

In 6.7 (DP1), the times to copy chars or bytes are equal and very small, while the number for lines is quite small.

In 7.0 RC1, the times are all *MUCH* larger - to the point where I'd say 7.0 is unacceptable. And in addition, copying bytes takes over twice as long as copying chars - when if anything it should be the other way round.

7.0 RC1
bytes took  313
chars took  137
lines took  4058

6.7 (DP4)
bytes took  8
chars took  8
lines took  411

i.e. 7.0 is 40 times slower for copying a block of data !!

I'll try to enter a bug report and when (if) I succeed, I'll post the number here.


-- Alex.

constant K = 10  -- which gives 2**10 lines of data
constant KSTART = 4 -- starting offset - large numbers should make lines slow, but not affect bytes
constant COUNT = 20000 -- make this big enough to get useful data

on mouseUp
   -- setup
   local tt, tStartData, cPos1, cPos2, t1, t2
   put "abcdefghijklmnopqrstuvwxyz" & CR into tt
   repeat K times
      put tt after tt
   end repeat

   put tt into tStartData
put "data has" && the number of lines in tStartData && the number of bytes in tStartData &CR after fld 1

   put the number of chars in line 1 to KSTART of tStartData into cPos1
   put the number of chars in line 1 to kSTART + 4 of tStartData into cPos2

   put the millisecs into t1
   repeat COUNT times
put byte 1 to cPos2 - cPos1 +1 of tt into byte cPos1 to cPos2 of tStartData
   end repeat
   put the millisecs into t2
   put "bytes took " && t2 - t1 &CR after msg

   put the millisecs into t1
   repeat COUNT times
put char 1 to cPos2 - cPos1 +1 of tt into char cPos1 to cPos2 of tStartData
   end repeat
   put the millisecs into t2
   put "chars took " && t2 - t1 &CR after msg

   put the millisecs into t1
   repeat COUNT times
put line KSTART to KSTART+4 of tt into line KSTART to KSTART+4 of tStartData
   end repeat
   put the millisecs into t2
   put "lines took " && t2 - t1 &CR after msg

end mouseUp

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to