Performance

Jim Ault jimaultwins at yahoo.com
Sun Jun 20 07:18:21 EDT 2010


In this case I would use an array
or custom properties.  Much faster by far.

--variable array
add one to vgCpuFlux[ vpNumFlux ]


--custom property ( a trickier technique, but more powerful )

    get the vgCpuFlux[ vpNumFlux ] of this stack +1
    set the vgCpuFlux[ vpNumFlux ] of this stack to IT

--or store on each card
    get the vgCpuFlux[ vpNumFlux ] of this CARD +1
    set the vgCpuFlux[ vpNumFlux ] of this CARD to IT

---------------------------------------------------------
The array method takes 1 tick to do 10,000 times
    put "4" into vpNumFlux
    put the ticks into startt
    repeat 10000 times
       add one to vgCpuFlux[ vpNumFlux ]
    end repeat
    get the ticks - startt
    get IT & cr & vgCpuFlux[ vpNumFlux ]
    answer IT -- => 1   yep only one tick


The custom property method takes 14 ticks to do
    put "4" into vpNumFlux
    put the ticks into startt
    repeat 10000 times
        get the vgCpuFlux[ vpNumFlux ] of this stack + 1
       set the vgCpuFlux[ vpNumFlux ] of this stack to IT
    end repeat
    get the ticks - startt
    get IT & cr & the vgCpuFlux[ vpNumFlux ] of this stack
    answer IT -- => 14 ticks

The 'do' command should not be used for simply adding numbers such as  
a cross-tabulation technique like you are employing.
Hope this helps.


On Jun 20, 2010, at 3:38 AM, René Micout wrote:

> Thank you Mark,
> In my project I use lot of "do" command...
> For you, is that (the number of flux (flows) is 5) :
>
> put "add 1 to vgCompteurFlux"& vpNuméroduFlux into vxA ; do vxA
>
> faster or slower than :
>
> switch vpNuméroduFlux
> case 1 ; add 1 to vgCompteurFlux1 ; break
> case 2 ; add 1 to vgCompteurFlux2 ; break
> case 3 ; add 1 to vgCompteurFlux3 ; break
> case 4 ; add 1 to vgCompteurFlux4 ; break
> case 5 ; add 1 to vgCompteurFlux5 ; break..
> end switch
>
> You can answer to me : make a test ;-)... But have you ever had this  
> choice to make ?
>

Jim Ault
Las Vegas






More information about the use-livecode mailing list