Timing boundary

Only operation execution reaches the charts.

Each fixed-count sample takes exactly two high-resolution clock readings around execute(operations). The chart divides measured nanoseconds by completed operations and summarizes seven samples.

Excluded from every chart value

  • Emitter and handler setup
  • Behavior validation and assertions
  • Iteration calibration
  • JIT warmup
  • Post-run verification and checksum comparison
  • Summary calculation and formatting
  • JSON serialization and file I/O
  • Node startup and CI orchestration

Included

  • The exact public calls printed beside each bar
  • Minimal observable handler bodies during dispatch
  • Allocation required by the measured API, such as list snapshots
  • The fixed-count loop branch required to repeat an operation

Timed handler effects become post-run checksums, proving every subscriber ran. No synthetic baseline is subtracted; subtraction can amplify JIT noise and create a value that was never directly observed.

Published benchmark environment
Packageevent-pubsub@6.1.1
Source commitloading
Node / V8loading / loading
Platformloading · loading · loading
CPUloading · loading logical CPUs
Clockprocess.hrtime.bigint
Statisticmedian with p25 and p75
Samples7

Loading current CI environment…

Reproduce locally

npm ci
npm run benchmark

Inspect the evidence

The JSON includes every sample’s operation count, elapsed nanoseconds, latency, derived throughput, and checksum.