Hello :)

Yes it's funny .. i forget the 0 is a boolean in a conditional
instruction... the problem with this loop is the negative values. but it's a
good notation.

After tests... in AS2 this method is more speed.

var ar:Array = new Array(500000) ;

var time ;

Key.addListener(this) ;

onKeyDown = function()
{
   var result ;
   var code:Number = Key.getCode() ;
   var copy:Array = [].concat(ar)
   var len:Number = copy.length ;
   switch (code)
   {
       case Key.UP :
       {
           time = getTimer() ;
           for( var i:Number = 0 ; i<len ; i++ )
           {
               result = copy[len] ;
           }
           time = getTimer() - time ;
           trace( "for speed : " + time + " ms") ;
           break ;
       }
       case Key.DOWN :
       {
           time = getTimer() ;
           while( len-- )
           {
               result = copy[len] ;
           }
           time = getTimer() - time ;
           trace( "while(len--) speed : " + time + " ms") ;
           break ;
       }
       case Key.LEFT :
       {
           time = getTimer() ;
           while( --len > -1 )
           {
               result = copy[len] ;
           }
           time = getTimer() - time ;
           trace( "while(--len > -1) speed : " + time + " ms") ;
           break ;
       }
       case Key.RIGHT :
       {
           time = getTimer() ;
           while( --len -(-1) )
           {
               result = copy[len] ;
           }
           time = getTimer() - time ;
           trace( "while(--len -(-1)) speed : " + time + " ms") ;
           break ;
       }
   }
}

for speed : 329 ms
while(len--) speed : 305 ms
while(--len > -1) speed : 324 ms
while(--len -(-1)) speed : 418 ms

Thanks :)

EKA+ :)



2007/5/11, Steven Sacks <[EMAIL PROTECTED]>:

I think he was pointing out how the loop could be optimized even further.

Pre-decrementing is faster than post-decrementing.

However, his greater than comparison slows it down.  The right way to do
it is:

while (--i -(-1))
{
}

since subtraction is faster than addition.

This is all academic, though.  I used to use --i -(-1) but I gave it up
for the readability of while (i--).

This is my new favorite:

while (i--) i++;

;)
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to