Skip to content

Instantly share code, notes, and snippets.

@weierophinney
Last active September 28, 2015 20:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save weierophinney/34d5781d1a9f34785c64 to your computer and use it in GitHub Desktop.
Save weierophinney/34d5781d1a9f34785c64 to your computer and use it in GitHub Desktop.
Athletic benchmark results of zend-eventmanager, to detail performance improvements from v2 to v3. Two separate benchmarks are shown for v3, one detailing the original strategy of "prepare shared listeners only on the first trigger" and one detailing the strategy where shared listeners are prepared on every trigger, demonstrating we can do so wi…
Benchmarks from current v2 master.
ZendBench\EventManager\MultipleEventIndividualSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0001748194695] [5,720.18668]
ZendBench\EventManager\MultipleEventLocalListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0001006753922] [9,932.91388]
ZendBench\EventManager\MultipleEventMultipleLocalAndSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- ------------
trigger : [ 5,000] [0.0022994998455] [434.87718 ]
ZendBench\EventManager\MultipleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0006278086662] [1,592.84198]
ZendBench\EventManager\SingleEventMultipleListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0005089021683] [1,965.01423]
ZendBench\EventManager\SingleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0008424067497] [1,187.07501]
ZendBench\EventManager\SingleEventSingleListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- --------------
trigger : [ 5,000] [0.0000391073227] [25,570.65867]
ZendBench\EventManager\SingleEventSingleSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- --------------
trigger : [ 5,000] [0.0000679784775] [14,710.53835]
ZendBench\EventManager\MultipleEventIndividualSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0000650412560] [15,374.85686]
ZendBench\EventManager\MultipleEventLocalListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0000530229568] [18,859.75546]
ZendBench\EventManager\MultipleEventMultipleLocalAndSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0007908065319] [1,264.53179]
ZendBench\EventManager\MultipleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0001328581333] [7,526.82561]
ZendBench\EventManager\SingleEventMultipleListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0001417944431] [7,052.46255]
ZendBench\EventManager\SingleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0001456176758] [6,867.29818]
ZendBench\EventManager\SingleEventSingleListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0000218240738] [45,820.95944]
ZendBench\EventManager\SingleEventSingleSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0000281458855] [35,529.17179]
Benchmarks from EventManager v3 refactor with "prepare on each trigger" strategy (feature parity with v2)
ZendBench\EventManager\MultipleEventIndividualSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0001748047829] [5,720.66727]
ZendBench\EventManager\MultipleEventLocalListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- --------------
trigger : [ 5,000] [0.0000996248722] [10,037.65403]
ZendBench\EventManager\MultipleEventMultipleLocalAndSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- ------------
trigger : [ 5,000] [0.0023536602020] [424.87017 ]
ZendBench\EventManager\MultipleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0006869523525] [1,455.70504]
ZendBench\EventManager\SingleEventMultipleListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0004886499405] [2,046.45477]
ZendBench\EventManager\SingleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- -------------
trigger : [ 5,000] [0.0008346837521] [1,198.05854]
ZendBench\EventManager\SingleEventSingleListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- --------------
trigger : [ 5,000] [0.0000377335072] [26,501.64470]
ZendBench\EventManager\SingleEventSingleSharedListener
Method Name Iterations Average Time Ops/second
------------ ------------ ----------------- --------------
trigger : [ 5,000] [0.0000681439877] [14,674.80895]
Benchmarks from EventManager v3 refactor with "prepare on first trigger only" strategy
ZendBench\EventManager\MultipleEventIndividualSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0001482594967] [6,744.93049]
ZendBench\EventManager\MultipleEventLocalListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0000952682972] [10,496.67129]
ZendBench\EventManager\MultipleEventMultipleLocalAndSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0022431646824] [445.79874]
ZendBench\EventManager\MultipleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0005414091587] [1,847.03192]
ZendBench\EventManager\SingleEventMultipleListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0005128520012] [1,949.88027]
ZendBench\EventManager\SingleEventMultipleSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0008489616394] [1,177.90952]
ZendBench\EventManager\SingleEventSingleListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0000400547981] [24,965.79803]
ZendBench\EventManager\SingleEventSingleSharedListener
Method Name Iterations Average Time Ops/second
------- ------------ -------------- -------------
trigger: [5,000 ] [0.0000607269287] [16,467.15915]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment