Oxmgr vs PM2 — Benchmarks

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

latest v0.4.0 Updated May 11, 2026, 08:39 AM UTC Raw benchmark.json
MetricOxmgrPM2Ratio
Boot time100.8 ms390.7 ms3.88× faster
Daemon RSS (idle)6,668 KB57,260 KB8.59× lower
Daemon RSS (100 procs)9,764 KB163,964 KB16.79× lower
Start 1 process3.8 ms193.3 ms51.25× faster
Start 100 processes815.3 ms5.99 s7.35× faster
Restart → TCP ready239.1 ms401.2 ms1.68× faster
Crash → PID visible3.9 ms179.8 ms45.71× faster
Crash → TCP ready36.4 ms180.9 ms4.98× 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