OK, I ran some tests of my own. After repeating it a couple of times,
with various outcomes, the trend seems to be that a) the cast is about
10% faster than the equality, and b) the bitwise and is about 10%
faster than the modulo.
I used MTASC to compile, FP8 under wine on Linux, and the ActionStep
Debug Panel (ActionStep alpha 1 has been released! check it out:
actionstep.org).
I decided to go with triggering it onKeyDown, to avoid initialization
of the player and to be easily able to run repeated tests.

Here's the code:

var bench:Object = {};
bench.onKeyDown = function () {
        var repeats:Number = 500000;
        var i:Number = repeats;
        var foo;
        var start:Number = getTimer();
        while( i-- ) {
                foo = ( Math.random() * 100000 )|0;
        }
        var overhead:Number = getTimer() - start;
        trace( "overhead: " + overhead );
        i = repeats;
        start = getTimer();
        while( i-- ) {
                foo = ( Math.random() * 100000 )|0 % 2 == 1;
        }
        trace( "modulo, equality: " + ( getTimer() - start - overhead ) );
        i = repeats;
        start = getTimer();
        while( i-- ) {
                foo = Boolean( ( Math.random() * 100000 )|0 % 2 );
        }
        trace( "modulo, cast: " + ( getTimer() - start - overhead ) );
        i = repeats;
        start = getTimer();
        while( i-- ) {
                foo = ( Math.random() * 100000 )|0 & 1 == 1;
        }
        trace( "and, equality: " + ( getTimer() - start - overhead ) );
        i = repeats;
        start = getTimer();
        while( i-- ) {
                foo = Boolean( ( Math.random() * 100000 )|0 & 1 );
        }
        trace( "and, cast: " + ( getTimer() - start - overhead ) );
}
Key.addListener( bench );

//mark

--
http://snafoo.org/
jabber: [EMAIL PROTECTED]
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to