Events and Signals – Performance Tests
The new as3signals library devised by Robert Penner offers a replacement to the native AS3 event model. One benefit is that signals are more lightweight, and therefore faster. Grant Skinner’s Performance Harness is a widely accepted library for comparing the speeds of code execution.
I found the following results on Mac OS X, Flash Player 10.0.42.34, with a release build.
When an event (signal) is dispatched but nothing is listening for it:

When an event (signal) is dispatched and handled by one method listener:

The source code for my test methods follows:
If you browse these tests, you will notice that more tests were run than I have displayed above. The graphs above reference results from running the dataEventOptimised and dataSignal methods in each context.
These tests are not scientific. No attempt has been to control for player version, computer version, computer specifications, so on and so forth. You are invited to download and run these tests for yourself. If you do, remember that testing on a release build not a debug build is appropriate, and then please post your results as a comment, particularly if your results differ from my own.
Updates
For a comparison with good old fashioned callbacks, please put on your sarcasm snorkel and visit va.lent.in’s follow up post.
From the as3signals Google Group there was a suggestion that the Flash Player 10.1 might produce different results. Here are my results; they appear to corroborate the earlier results:
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– performancetests.EventsTest (5 iterations) Player version: MAC 10,1,51,66 (regular) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– method...................................................ttl ms...avg ms dataEvent 2344 468.80 dataEventOptimised 2270 454.00 dataSignal 313 62.60 simpleEvent 2755 551.00 simpleEventOptimised 2285 457.00 simpleSignal 174 34.80 –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– performancetests.CapturedEventsTest (5 iterations) Player version: MAC 10,1,51,66 (regular) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– method...................................................ttl ms...avg ms dataEvent 2708 541.60 dataEventOptimised 2703 540.60 dataSignal 1182 236.40 simpleEvent 2724 544.80 simpleEventOptimised 2717 543.40 simpleSignal 1042 208.40 ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
-
robpenner
-
TahirAhmed
-
alecmce
-
jacksondunstan
-
og2t
-
troygilbert
-
mnem
-
alecmce
