Oxmgr vs PM2 — Benchmarks

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

latest v0.2.0 Updated Apr 13, 2026, 07:24 AM UTC Raw benchmark.json
MetricOxmgrPM2Ratio
Boot time100.8 ms397.8 ms3.95× faster
Daemon RSS (idle)6,620 KB57,624 KB8.70× lower
Daemon RSS (100 procs)7,836 KB161,740 KB20.64× lower
Start 1 process4.2 ms196.4 ms46.70× faster
Start 100 processes855.2 ms6.11 s7.15× faster
Restart → TCP ready239.3 ms398.2 ms1.66× faster
Crash → PID visible4.0 ms184.5 ms46.63× faster
Crash → TCP ready36.8 ms185.8 ms5.05× 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