BENCHMARK.md
Rama master · réplica de lectura del repositorio original.
<!-- This file is generated by .github/workflows/benchmark.yml. -->
> Latest committed benchmark result from the automated `oxmgr` vs `pm2` workflow.
>
> Methodology and local repro steps: [docs/BENCHMARKS.md](./docs/BENCHMARKS.md)
>
> Machine-readable snapshot: [benchmark.json](./benchmark.json)
# Oxmgr vs PM2 Benchmarks
- Generated: 2026-11-09T13:59:13.799018+00:00
- Host platform: linux (Linux 7.0.0-1019-azure)
- Node.js: v20.20.2
- pm2 command: `/opt/hostedtoolcache/node/20.20.2/x64/bin/pm2`
- oxmgr binary: `/home/runner/work/OxMgr/OxMgr/target/release/oxmgr`
GitHub-hosted runners are noisy. Treat the numbers as trend signals, not absolute lab measurements.
## Empty Daemon Boot
| Manager | boot median (ms) | boot p95 (ms) | daemon RSS median (KB) |
| --- | ---: | ---: | ---: |
| oxmgr | 101.0 | 102.2 | 6856.0 |
| pm2 | 362.7 | 439.6 | 58156.0 |
## Scale: Start, Settle, List, RSS
| Processes | Manager | start median (ms) | settle median (ms) | list median (ms) | daemon RSS median (KB) |
| ---: | --- | ---: | ---: | ---: | ---: |
| 1 | oxmgr | 4.4 | 0.2 | 2.3 | 7584.0 |
| 1 | pm2 | 173.2 | 175.5 | 122.1 | 67584.0 |
| 25 | oxmgr | 190.5 | 0.6 | 3.6 | 8004.0 |
| 25 | pm2 | 1351.5 | 230.6 | 185.5 | 121332.0 |
| 100 | oxmgr | 816.2 | 1.5 | 3.2 | 10440.0 |
| 100 | pm2 | 5366.3 | 339.5 | 271.5 | 167992.0 |
## Single-App Lifecycle
| Scenario | Manager | median (ms) | p95 (ms) |
| --- | --- | ---: | ---: |
| restart command | oxmgr | 206.4 | 207.4 |
| restart command | pm2 | 257.6 | 269.8 |
| restart -> pid visible | oxmgr | 206.8 | 208.6 |
| restart -> pid visible | pm2 | 276.6 | 286.8 |
| restart -> ready event emitted | oxmgr | 230.1 | 231.9 |
| restart -> ready event emitted | pm2 | 355.3 | 369.2 |
| restart -> ready event visible | oxmgr | 237.6 | 239.5 |
| restart -> ready event visible | pm2 | 365.4 | 376.7 |
| restart -> tcp ready | oxmgr | 239.3 | 241.2 |
| restart -> tcp ready | pm2 | 366.4 | 377.6 |
| crash -> pid visible | oxmgr | 3.7 | 5.4 |
| crash -> pid visible | pm2 | 157.3 | 172.6 |
| crash -> ready event emitted | oxmgr | 27.3 | 30.2 |
| crash -> ready event emitted | pm2 | 130.4 | 143.3 |
| crash -> ready event visible | oxmgr | 34.4 | 36.0 |
| crash -> ready event visible | pm2 | 157.4 | 172.7 |
| crash -> tcp ready | oxmgr | 36.0 | 37.6 |
| crash -> tcp ready | pm2 | 158.4 | 173.8 |
## Quick Read
- Empty-daemon boot: oxmgr 3.59x lower vs pm2
- Empty-daemon RSS: oxmgr 8.48x lower vs pm2
- Restart command latency: oxmgr 1.25x lower vs pm2
- Restart TCP-ready latency: oxmgr 1.53x lower vs pm2
- Crash replacement PID visibility: oxmgr 42.76x lower vs pm2
- Crash ready-event emitted latency: oxmgr 4.77x lower vs pm2
- Crash TCP-ready latency: oxmgr 4.40x lower vs pm2
- Daemon RSS at 100 processes: oxmgr 16.09x lower vs pm2