Hello list !

I noticed something weird about EventDispatcher execution speed in my mac player. EventDispatcher.dispatchEvent execution is slow compared to a custom dispatcher implementation (named EventBroadcaster).

On Mac, EventDispatcher is slow:
EventBroadcaster: 2925
EventDispatcher: 12438

On Pc, EventDispatcher is faster.
EventBroadcaster: 3908
EventDispatcher: 3407

Can you please report the values you got (displayed on screen) when you open the url below and the browser you used for testing.
It takes few seconds to initialize (bench with iterations)

http://www.tweenpix.net/TestEventBroadcaster.swf

Any clue is welcome. ;)
Thanks in advance guys !

francis



Content of the test:

var tf1 : TextField = new TextField();
var tf2 : TextField = new TextField();
var tf3 : TextField = new TextField();
tf2.y += 30;
tf3.y += 60;
tf1.width = tf2.width = tf3.width = 150;
this.addChild( tf1 );
this.addChild( tf2 );
this.addChild( tf3 );
                        
var holder : Array = new Array();
var l1 : Number = 10000;
var l2 : Number = 10000;
var lNum : Number = 500;
        
var eb : EventBroadcaster = new EventBroadcaster ( this );
var ed : EventDispatcher = new EventDispatcher ();
                        
while( --lNum -(-1) )
{
        var tg : Object = {foo:function( e : Event ):void{ this.e = e.type; }};
        ed.addEventListener( "foo", tg.foo );
        eb.addEventListener( "foo", tg );
        holder.push( tg );
}

var t : Number = 0;
var e : Event = new Event( "foo" );
        
//
t = getTimer();
while( --l2 -(-1)) eb.broadcastEvent( e );
t = getTimer() - t;
trace( "EventBroadcaster: ", t );
tf1.text = "EventBroadcaster: " + t;
//
t = getTimer();
while( --l1 -(-1)) ed.dispatchEvent( e );
t = getTimer() - t;
trace( "EventDispatcher: ", t );
tf2.text = "EventDispatcher: " + t;

tf3.text = flash.system.Capabilities.version;

Reply via email to