Oxmgr vs PM2 — Benchmarks

Automated benchmarks run on every push. Numbers reflect real-world process management workloads, not synthetic microbenchmarks.

latest v0.1.1 Updated Mar 2, 2026, 09:36 AM UTC Raw benchmark.json
MetricOxmgrPM2Ratio
Boot time100.7 ms382.8 ms3.80× faster
Daemon RSS (idle)5,892 KB56,932 KB9.66× lower
Daemon RSS (100 procs)6,880 KB145,532 KB21.15× lower
Start 1 process3.9 ms184.0 ms47.67× faster
Start 100 processes773.3 ms5.82 s7.53× faster
Restart → TCP ready238.3 ms380.9 ms1.60× faster
Crash → PID visible3.7 ms157.2 ms41.97× faster
Crash → TCP ready36.0 ms158.3 ms4.40× faster

Methodology

Benchmarks are executed automatically via GitHub Actions on Ubuntu runners for every push to the main branch. The workload simulates real process management scenarios: starting, stopping, and restarting Node.js HTTP servers.

  • Environment: GitHub Actions Ubuntu (latest), Linux 6.14 on Azure
  • Workload: Idle Node.js HTTP server — single process and fleet of 100
  • Measurement: Median of 5 runs for each metric
  • TCP readiness: Polling localhost:3000 until first successful connection

Important caveat

GitHub-hosted runners share infrastructure and exhibit non-trivial measurement noise. Treat these numbers as directional trend signals, not absolute lab measurements. The relative differences are consistent across runs, but absolute timing values will vary depending on host load.

Run it yourself

The benchmark script is included in the repository. Requires Python 3, Node.js, and both oxmgr and pm2 installed.

Clone and run
$git clone https://github.com/Vladimir-Urik/OxMgr.git
$cd OxMgr
$python3 scripts/benchmark_oxmgr_vs_pm2.py