My lock-free ring has a p99 17–23× lower than a mutex queue.
- Lock-free ring
- Mutex + std::queue
- Dot is p50, tick is p99
Tap a rate
Cold open-loop latency, median of 3 reps (2 s warmup, 8 s measure, 30 s cooldown). Quote p50 and p99 only; p99.9 and max are scheduler tail. Apple M2 Pro, one machine; numbers do not transfer.
Latency as a table
| Messages / s | Queue | p50 (µs) | p99 (µs) | p99 ratio |
|---|---|---|---|---|
| 100k | Lock-free ring | 0.12 | 0.5 | 18.3× lower |
| 100k | Mutex + std::queue | 6.29 | 9.13 | baseline |
| 500k | Lock-free ring | 0.12 | 0.46 | 17.2× lower |
| 500k | Mutex + std::queue | 2.42 | 7.92 | baseline |
| 1M | Lock-free ring | 0.12 | 0.46 | 22.8× lower |
| 1M | Mutex + std::queue | 1.29 | 10.5 | baseline |
