Skip to content

Instantly share code, notes, and snippets.

@ahdinosaur
Last active June 27, 2016 12:40
Show Gist options
  • Save ahdinosaur/6e72863d851516af3de1610217ce2766 to your computer and use it in GitHub Desktop.
Save ahdinosaur/6e72863d851516af3de1610217ce2766 to your computer and use it in GitHub Desktop.

Tests

  • ✔ Platform [pass: 1, fail: 0, duration: 1ms]
  • ✔ add and remove [pass: 20, fail: 0, duration: 1ms]
  • ✔ emit one array [pass: 48, fail: 0, duration: 4ms]
  • ✔ emit many values - two listeners [pass: 30, fail: 0, duration: 3ms]
  • ✔ emit one object - one listener [pass: 40, fail: 0, duration: 2ms]
  • ✔ emit one object - two listeners [pass: 54, fail: 0, duration: 1ms]
  • ✔ emit one value - bound function [pass: 51, fail: 0, duration: 1ms]
  • ✔ emit one value - many listeners [pass: 36, fail: 0, duration: 3ms]
  • ✔ emit one value - one listener [pass: 52, fail: 0, duration: 1ms]
  • ✔ emit one value - two listeners [pass: 69, fail: 0, duration: 2ms]
  • ✔ emit one value - with context [pass: 48, fail: 0, duration: 1ms]
  • ✔ emit variable number of values [pass: 27, fail: 0, duration: 1ms]
  • ✔ init [pass: 24, fail: 0, duration: 4ms]

Summary

  • duration: 25ms
  • planned: 500
  • assertions: 500
  • pass: 500
  • fail: 0

Comments

Platform

Node.js 6.2.1 on Linux 64-bit NODE_ENV = production BENCH = undefined

add and remove

dripEmitter x 12,907,575 ops/sec ±1.79% (15 runs sampled)
MiniSignals x 7,402,660 ops/sec ±1.87% (16 runs sampled)
EventDispatcher x 2,783,066 ops/sec ±6.12% (14 runs sampled)
ReactiveProperty x 2,573,344 ops/sec ±5.24% (17 runs sampled)
pushStream x 1,965,383 ops/sec ±5.81% (15 runs sampled)
EventEmitter x 2,078,466 ops/sec ±14.98% (15 runs sampled)
EventEmitter3 x 919,260 ops/sec ±3.16% (17 runs sampled)
EventEmitter2 x 538,063 ops/sec ±8.76% (13 runs sampled)
JS-Signals x 348,947 ops/sec ±10.09% (14 runs sampled)
dripEmitterEnhanced x 200,140 ops/sec ±1.81% (16 runs sampled)

Fastest is dripEmitter

emit one array

Theoretical max x 6,080,287 ops/sec ±3.36% (14 runs sampled) *burn in*
MiniSignals x 3,438,221 ops/sec ±3.57% (14 runs sampled)
MicroSignals x 3,680,306 ops/sec ±11.40% (15 runs sampled)
signal-lite x 3,339,746 ops/sec ±3.99% (16 runs sampled)
dripEmitter x 2,717,320 ops/sec ±5.86% (15 runs sampled)
push-stream x 2,542,205 ops/sec ±3.49% (14 runs sampled)
ReactiveProperty x 2,399,032 ops/sec ±4.69% (17 runs sampled)
EventEmitter3 x 2,228,180 ops/sec ±1.07% (17 runs sampled)
EventEmitter x 1,617,009 ops/sec ±2.97% (16 runs sampled)
event-signal x 904,837 ops/sec ±5.04% (16 runs sampled)
RXJS x 730,061 ops/sec ±5.14% (16 runs sampled)
EventEmitter2 x 703,708 ops/sec ±7.66% (16 runs sampled)
pull-notify x 523,505 ops/sec ±4.74% (16 runs sampled)
dripEmitterEnhanced x 295,747 ops/sec ±1.93% (17 runs sampled)
signal-emitter x 110,976 ops/sec ±5.11% (13 runs sampled)
JS-Signals x 64,146 ops/sec ±1.50% (15 runs sampled)

Fastest is MiniSignals, MicroSignals, signal-lite

emit many values - two listeners

Theoretical max x 27,100,521 ops/sec ±3.00% (15 runs sampled) *burn in*
MiniSignals x 8,216,521 ops/sec ±2.03% (17 runs sampled)
signal-lite x 8,219,141 ops/sec ±3.08% (16 runs sampled)
EventEmitter3 x 397,126 ops/sec ±1.22% (16 runs sampled)
EventEmitter x 385,423 ops/sec ±3.04% (15 runs sampled)
EventEmitter2 x 358,123 ops/sec ±1.14% (17 runs sampled)
dripEmitterEnhanced x 249,476 ops/sec ±1.45% (14 runs sampled)
signal-emitter x 176,549 ops/sec ±3.08% (16 runs sampled)
JS-Signals x 84,908 ops/sec ±4.14% (16 runs sampled)
minivents x 59,902 ops/sec ±4.81% (16 runs sampled)

Fastest is MiniSignals, signal-lite

emit one object - one listener

Theoretical max x 5,761,183 ops/sec ±2.07% (14 runs sampled) *burn in*
MicroSignals x 5,154,220 ops/sec ±1.28% (16 runs sampled)
MiniSignals x 4,364,721 ops/sec ±0.87% (17 runs sampled)
mini-pipe x 4,486,846 ops/sec ±4.34% (17 runs sampled)
signal-lite x 4,142,821 ops/sec ±4.78% (16 runs sampled)
push-stream x 3,394,153 ops/sec ±1.45% (13 runs sampled)
ReactiveProperty x 3,287,275 ops/sec ±0.66% (17 runs sampled)
xstream x 3,044,616 ops/sec ±1.15% (16 runs sampled)
dripEmitter x 3,135,966 ops/sec ±23.47% (15 runs sampled)
EventEmitter2 x 2,828,362 ops/sec ±22.24% (15 runs sampled)
EventEmitter x 2,141,585 ops/sec ±1.64% (16 runs sampled)
EventEmitter3 x 2,590,406 ops/sec ±25.71% (15 runs sampled)
EventDispatcher x 1,373,993 ops/sec ±0.86% (16 runs sampled)
event-signal x 1,078,990 ops/sec ±1.40% (16 runs sampled)
pull-pushable x 1,014,383 ops/sec ±2.09% (15 runs sampled)
pull-notify x 1,038,848 ops/sec ±6.39% (14 runs sampled)
RXJS x 830,309 ops/sec ±4.50% (17 runs sampled)
dripEmitterEnhanced x 321,206 ops/sec ±4.94% (17 runs sampled)
signal-emitter x 95,294 ops/sec ±7.14% (15 runs sampled)
JS-Signals x 66,802 ops/sec ±2.99% (17 runs sampled)

Fastest is MicroSignals

emit one object - two listeners

Theoretical max x 4,250,197 ops/sec ±2.33% (16 runs sampled) *burn in*
MicroSignals x 2,495,953 ops/sec ±0.76% (17 runs sampled)
MiniSignals x 2,518,306 ops/sec ±3.74% (16 runs sampled)
signal-lite x 2,397,737 ops/sec ±1.72% (16 runs sampled)
push-stream x 2,219,798 ops/sec ±1.87% (17 runs sampled)
ReactiveProperty x 2,184,993 ops/sec ±3.78% (17 runs sampled)
EventEmitter3 x 1,834,018 ops/sec ±0.75% (15 runs sampled)
dripEmitter x 1,860,846 ops/sec ±6.02% (15 runs sampled)
xstream x 1,651,893 ops/sec ±5.48% (15 runs sampled)
EventEmitter x 1,338,439 ops/sec ±1.26% (14 runs sampled)
EventDispatcher x 1,181,418 ops/sec ±2.49% (16 runs sampled)
event-signal x 858,655 ops/sec ±3.85% (15 runs sampled)
EventEmitter2 x 665,347 ops/sec ±1.86% (15 runs sampled)
RXJS x 549,667 ops/sec ±6.42% (15 runs sampled)
pull-notify x 479,753 ops/sec ±2.89% (15 runs sampled)
dripEmitterEnhanced x 255,420 ops/sec ±1.68% (17 runs sampled)
signal-emitter x 121,087 ops/sec ±8.06% (14 runs sampled)
JS-Signals x 59,338 ops/sec ±3.63% (15 runs sampled)

Fastest is MicroSignals, MiniSignals

emit one value - bound function

MicroSignals x 15,938,672 ops/sec ±2.28% (18 runs sampled)
Theoretical max x 14,014,804 ops/sec ±3.88% (14 runs sampled) *burn in*
ReactiveProperty x 7,665,056 ops/sec ±0.92% (15 runs sampled)
push-stream x 7,351,515 ops/sec ±4.00% (13 runs sampled)
xstream x 6,827,995 ops/sec ±2.37% (15 runs sampled)
dripEmitter x 6,377,868 ops/sec ±2.18% (16 runs sampled)
EventEmitter3 x 5,720,267 ops/sec ±4.69% (16 runs sampled)
MiniSignals x 5,311,043 ops/sec ±19.13% (16 runs sampled)
EventEmitter x 4,305,452 ops/sec ±5.59% (14 runs sampled)
event-signal x 3,455,904 ops/sec ±9.30% (16 runs sampled)
signal-lite x 2,699,672 ops/sec ±10.66% (13 runs sampled)
EventEmitter2 x 2,110,712 ops/sec ±2.73% (15 runs sampled)
pull-notify x 1,635,133 ops/sec ±2.06% (16 runs sampled)
RXJS x 1,534,950 ops/sec ±3.71% (16 runs sampled)
dripEmitterEnhanced x 916,978 ops/sec ±5.55% (16 runs sampled)
signal-emitter x 439,490 ops/sec ±15.55% (12 runs sampled)
JS-Signals x 183,953 ops/sec ±3.25% (15 runs sampled)

Fastest is MicroSignals

emit one value - many listeners

Theoretical max x 2,296,891 ops/sec ±4.91% (12 runs sampled) *burn in*
MicroSignal x 2,251,173 ops/sec ±3.65% (15 runs sampled)
signal-lite x 2,168,772 ops/sec ±3.30% (15 runs sampled)
MiniSignals x 2,079,206 ops/sec ±3.45% (15 runs sampled)
push-stream x 1,992,370 ops/sec ±1.86% (17 runs sampled)
EventEmitter3 x 1,985,392 ops/sec ±3.60% (15 runs sampled)
xstream x 1,664,027 ops/sec ±4.04% (17 runs sampled)
dripEmitter x 1,647,219 ops/sec ±3.60% (15 runs sampled)
EventEmitter x 1,591,457 ops/sec ±3.88% (16 runs sampled)
ReactiveProperty x 1,595,198 ops/sec ±8.02% (16 runs sampled)
event-signal x 1,276,243 ops/sec ±3.15% (17 runs sampled)
EventEmitter2 x 1,059,405 ops/sec ±3.08% (15 runs sampled)
RXJS x 715,548 ops/sec ±3.94% (16 runs sampled)
dripEmitterEnhanced x 679,483 ops/sec ±3.35% (15 runs sampled)
pull-notify x 370,867 ops/sec ±5.34% (14 runs sampled)
signal-emitter x 307,525 ops/sec ±1.12% (17 runs sampled)
JS-Signals x 108,053 ops/sec ±0.90% (15 runs sampled)
minivents x 36,564 ops/sec ±6.37% (13 runs sampled)

Fastest is MicroSignal

emit one value - one listener

MicroSignals x 22,229,256 ops/sec ±8.94% (15 runs sampled)
Theoretical max x 18,949,832 ops/sec ±3.19% (14 runs sampled) *burn in*
xstream x 18,405,120 ops/sec ±10.24% (16 runs sampled)
MiniSignals x 16,791,080 ops/sec ±14.72% (15 runs sampled)
mini-pipe x 12,337,045 ops/sec ±6.32% (15 runs sampled)
signal-lite x 11,617,756 ops/sec ±3.25% (16 runs sampled)
EventEmitter2 x 10,206,585 ops/sec ±0.99% (17 runs sampled)
push-stream x 10,082,092 ops/sec ±6.28% (16 runs sampled)
push-stream-patch x 9,637,962 ops/sec ±5.09% (15 runs sampled)
ReactiveProperty x 8,918,573 ops/sec ±1.95% (15 runs sampled)
dripEmitter x 9,400,652 ops/sec ±18.16% (16 runs sampled)
EventEmitter x 8,102,792 ops/sec ±5.96% (15 runs sampled)
EventEmitter3 x 7,996,607 ops/sec ±24.32% (15 runs sampled)
observ x 5,755,090 ops/sec ±2.85% (14 runs sampled)
pull-notify x 4,492,477 ops/sec ±7.05% (14 runs sampled)
event-signal x 4,317,814 ops/sec ±10.48% (16 runs sampled)
pull-pushable x 3,908,607 ops/sec ±5.48% (17 runs sampled)
barracks x 2,279,350 ops/sec ±5.68% (16 runs sampled)
RXJS x 2,194,884 ops/sec ±4.98% (16 runs sampled)
d3-dispatch x 1,784,658 ops/sec ±3.37% (16 runs sampled)
dripEmitterEnhanced x 676,743 ops/sec ±6.42% (13 runs sampled)
observable x 384,992 ops/sec ±6.35% (15 runs sampled)
signal-emitter x 328,889 ops/sec ±5.85% (15 runs sampled)
minivents x 332,400 ops/sec ±12.80% (16 runs sampled)
JS-Signals x 219,620 ops/sec ±6.42% (15 runs sampled)
namespace-emitter x 207,058 ops/sec ±3.86% (14 runs sampled)

Fastest is MicroSignals

emit one value - two listeners

Theoretical max x 14,465,681 ops/sec ±9.31% (14 runs sampled) *burn in*
signal-lite x 8,921,053 ops/sec ±3.99% (15 runs sampled)
push-stream x 8,712,532 ops/sec ±5.75% (13 runs sampled)
EventEmitter3 x 9,094,831 ops/sec ±12.23% (15 runs sampled)
MiniSignals x 7,795,295 ops/sec ±1.11% (17 runs sampled)
dripEmitter x 8,999,813 ops/sec ±18.67% (16 runs sampled)
MicroSignals x 8,242,338 ops/sec ±8.83% (14 runs sampled)
push-stream-patch x 7,183,925 ops/sec ±5.14% (15 runs sampled)
xstream x 6,607,886 ops/sec ±2.88% (16 runs sampled)
ReactiveProperty x 5,039,301 ops/sec ±7.38% (12 runs sampled)
EventEmitter x 4,930,882 ops/sec ±7.08% (16 runs sampled)
observ x 2,926,515 ops/sec ±5.23% (16 runs sampled)
event-signal x 2,808,552 ops/sec ±7.40% (15 runs sampled)
EventEmitter2 x 2,477,846 ops/sec ±10.60% (12 runs sampled)
RXJS x 1,881,808 ops/sec ±4.50% (13 runs sampled)
pull-notify x 1,485,665 ops/sec ±7.04% (16 runs sampled)
d3-dispatch x 1,078,956 ops/sec ±2.95% (15 runs sampled)
dripEmitterEnhanced x 874,992 ops/sec ±10.58% (15 runs sampled)
observable x 370,834 ops/sec ±4.75% (15 runs sampled)
signal-emitter x 332,210 ops/sec ±3.49% (15 runs sampled)
namespace-emitter x 171,326 ops/sec ±6.64% (15 runs sampled)
JS-Signals x 162,669 ops/sec ±3.60% (16 runs sampled)
minivents x 145,521 ops/sec ±1.07% (13 runs sampled)

Fastest is signal-lite, push-stream, EventEmitter3, dripEmitter, MicroSignals

emit one value - with context

Theoretical max x 15,211,652 ops/sec ±2.44% (16 runs sampled) *burn in*
MiniSignals x 8,589,259 ops/sec ±1.50% (17 runs sampled)
MicroSignals x 8,405,646 ops/sec ±3.08% (15 runs sampled)
signal-lite x 7,863,922 ops/sec ±5.31% (13 runs sampled)
push-stream x 8,305,109 ops/sec ±12.90% (14 runs sampled)
ReactiveProperty x 7,424,509 ops/sec ±3.29% (16 runs sampled)
dripEmitter x 7,349,289 ops/sec ±7.76% (14 runs sampled)
EventEmitter3 x 6,641,075 ops/sec ±2.91% (15 runs sampled)
EventEmitter x 4,070,605 ops/sec ±4.79% (16 runs sampled)
event-signal x 2,513,511 ops/sec ±1.85% (15 runs sampled)
RXJS x 2,004,106 ops/sec ±4.72% (16 runs sampled)
EventEmitter2 x 1,874,030 ops/sec ±2.05% (17 runs sampled)
pull-notify x 1,124,958 ops/sec ±16.35% (17 runs sampled)
dripEmitterEnhanced x 949,267 ops/sec ±4.72% (15 runs sampled)
signal-emitter x 314,398 ops/sec ±6.37% (15 runs sampled)
JS-Signals x 195,934 ops/sec ±5.72% (14 runs sampled)

Fastest is MiniSignals, MicroSignals, push-stream

emit variable number of values

Theoretical max x 3,316,963 ops/sec ±1.92% (14 runs sampled) *burn in*
MiniSignals x 1,967,828 ops/sec ±5.86% (15 runs sampled)
signal-lite x 1,744,323 ops/sec ±13.29% (14 runs sampled)
EventEmitter x 1,191,242 ops/sec ±3.53% (15 runs sampled)
EventEmitter3 x 599,706 ops/sec ±3.87% (14 runs sampled)
EventEmitter2 x 337,243 ops/sec ±1.51% (16 runs sampled)
dripEmitterEnhanced x 179,888 ops/sec ±1.17% (15 runs sampled)
signal-emitter x 82,793 ops/sec ±2.36% (14 runs sampled)
JS-Signals x 44,032 ops/sec ±6.44% (13 runs sampled)

Fastest is MiniSignals

init

EventDispatcher x 30,441,338 ops/sec ±10.94% (14 runs sampled)
EventEmitter3 x 29,369,222 ops/sec ±13.70% (13 runs sampled)
DripEmitter x 28,364,853 ops/sec ±21.18% (15 runs sampled)
MiniSignals x 19,426,220 ops/sec ±20.53% (13 runs sampled)
Theoretical max x 20,351,933 ops/sec ±27.69% (16 runs sampled) *burn in*
EventEmitter2 x 16,608,189 ops/sec ±10.88% (15 runs sampled)
EventEmitter x 13,564,367 ops/sec ±5.10% (14 runs sampled)
push-stream x 10,559,108 ops/sec ±10.30% (16 runs sampled)
DripEmitterEnhanced x 9,281,235 ops/sec ±10.89% (13 runs sampled)
JS-Signals x 1,523,830 ops/sec ±16.40% (14 runs sampled)
ReactiveProperty x 868,296 ops/sec ±20.10% (13 runs sampled)
pull-notify x 617,455 ops/sec ±16.98% (13 runs sampled)

Fastest is EventDispatcher, EventEmitter3, DripEmitter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment