LQ-9 Benchmark War Page
Concurrency tool benchmark matrix
Five portable scenarios across Laplace, Loom, Shuttle, Stateright, and madsim. Current values are deterministic fixtures for the static contract and CI gate.
Result date
2026-05-28
Schema
lq9.benchmark.v1
Tool Pins
Pinned runner surfaces used by the fixture generator.
ubuntu-22.04 target hardware
| Tool | Version | Category | Runner |
|---|---|---|---|
| laplace | 0.1.0-alpha-1 | Axiom + Kraken + Probe local harness | laplace deterministic fixture runner |
| loom | 0.7.2 | DPOR permutation testing | loom::model |
| shuttle | 0.9.1 | Randomized and PCT scheduling | shuttle::check_pct |
| stateright | 0.31.0 | State-space model checking | stateright::Model |
| madsim | 0.2.34 | Deterministic distributed simulation | madsim::runtime |
Wall-clock Time
Median and p99 time to first violation, lower is better.
| Scenario | laplace | loom | shuttle | stateright | madsim |
|---|---|---|---|---|---|
| ABBA 4-thread deadlock Four workers acquire two locks in opposing order. | 0.52s
p99 0.65s | 0.82s
p99 1.01s | 0.61s
p99 0.98s | 1.05s
p99 1.28s | 0.74s
p99 0.92s |
| Producer-Consumer bounded queue Four producers and two consumers contend on a bounded queue. | 0.43s
p99 0.54s | 0.57s
p99 0.69s | 0.52s
p99 0.82s | 0.88s
p99 1.10s | 0.62s
p99 0.78s |
| RwLock reader starvation Reader-heavy schedule delays a writer behind recurring readers. | 0.50s
p99 0.64s | 0.64s
p99 0.82s | 0.59s
p99 0.90s | 0.93s
p99 1.19s | 0.71s
p99 0.90s |
| tokio watch mutex race Watch channel notification races with mutex-guarded state. | 0.46s
p99 0.59s | 0.76s
p99 0.95s | 0.70s
p99 1.08s | 1.10s
p99 1.36s | 0.66s
p99 0.84s |
| Dining Philosophers (5p) Five philosophers acquire adjacent forks with symmetric ordering. | 0.54s
p99 0.68s | 0.69s
p99 0.86s | 0.64s
p99 0.99s | 0.97s
p99 1.25s | 0.77s
p99 0.96s |
Peak Memory
Peak RSS per scenario, lower is better.
| Scenario | laplace | loom | shuttle | stateright | madsim |
|---|---|---|---|---|---|
| ABBA 4-thread deadlock | 88 MiB | 96 MiB | 84 MiB | 128 MiB | 104 MiB |
| Producer-Consumer bounded queue | 76 MiB | 82 MiB | 78 MiB | 116 MiB | 96 MiB |
| RwLock reader starvation | 82 MiB | 88 MiB | 80 MiB | 120 MiB | 100 MiB |
| tokio watch mutex race | 80 MiB | 92 MiB | 86 MiB | 132 MiB | 98 MiB |
| Dining Philosophers (5p) | 86 MiB | 90 MiB | 82 MiB | 124 MiB | 106 MiB |
Raw Data Contract
The committed files under benchmarks/lq9/2026-05-28
are the source of this page. Fixture values keep the page and CI gate deterministic until the
LQ-Perf phase promotes these runners to true GitHub Actions measurements.