On 8/24/07, John Grden <[EMAIL PROTECTED]> wrote:
> The post on my blog did so well, and the comments were growing and growing
> and samples were being added left and right blah blah blah
>
> So I created a community page where we can add links and more optimization
> techniques with explanations.  Probably should break it up into separate
> pages seeing as it's a pretty long page already.  If someone feels like
> doing that, be my guest ;)
>
> Also, if you posted a comment out there, and I DIDN'T get your
> change/fix/update in this new page, please make the change an add your
> stuff, I really appreciate the input and your time!
>
>  http://osflash.org/as3_speed_optimizations#as3_speed_tests
>

don't want to bring the joy down
but be careful about micro-benchmark

lately that kind of same benchmarks bring some heated comments here
http://blogs.sun.com/chrisoliver/entry/hotspot_vs_adobe_tamarin_vm

and inside those comments this link
http://strongtalk.org/benchmarking.html
could help define better benchmarks

indicating the version of the flash player running those benchmarks
should be included in those tests

flash player being based on the Tamarin VM and seeing
the work the Adobe folk and Mozilla folk putting in Tamarin
I would not be surprise at all if FP10, FP11/AS4, etc..
would bring much more optimized computation ;)

an other interesting way to really compare a full programm speed in AS3
would be to use namespace

for ex:

package test
    {
    import flash.utils.getTimer;

    public class Benchmarks
        {
        public namespace empty     = "empty";
        public namespace standard  = "standard";
        public namespace optimized = "optimized";

        public var mode:Namespace;

        public function Benchmarks( mode:Namespace = empty )
            {
            this.mode = mode;
            }

        public function runAll():void
            {
            mode = empty;
            run();

            mode = standard;
            run();

            mode = optimized;
            run();
            }

        public function run():void
            {
            var time:int = getTimer();

            for(var i:int=0;i<10000000;i++)
                {
                mode::testDivide( i );
                }

            trace( "mode: " + mode );
            trace( "testDivide: " + (getTimer()-time) );
            trace( "--------------" );
            }

        empty function testDivide( num:int ):void
            {

            }

        standard function testDivide( num:int ):void
            {
            var local:Number = num/2;
            }

        optimized function testDivide( num:int ):void
            {
            var local:Number = num*.5;
            }

        }

    }


//use
import test.Benchmarks;
var t:Benchmarks = new Benchmarks();
t.runAll();


and suprinsingly I obtain

mode: empty
testDivide: 8936
--------------
mode: standard
testDivide: 8974
--------------
mode: optimized
testDivide: 9363
--------------

cheers,
zwetan

_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org

Reply via email to