1. Choose an experiment
| Directory | Purpose | Start here |
|---|---|---|
spsc/ |
TwoBufQueue ordinary write / WriteSession versus pinned SPSC implementations | Run comparisons · Search parameters |
burst/ |
Business execution after a continuous message batch | Run the experiment · Guide |
block_size/ |
Writer-block size sweeps, with and without reader threads | Full pipeline · Writer only |
hot_path/ |
Producer-memory and business-cache experiments | Run the experiment · Guide |
tunable/ |
Shared C++ workload, adapters and parameter handling | Used by the benchmark executables |
common/ |
Shared process metrics | Used by the C++ experiments |
profiles/ |
Saved workload and search configurations | Passed to the corresponding scripts |
guides/ |
Parameter and experiment documentation | SPSC guide |
2. Build the benchmark tools
From the repository root:
python3 benchmarks/spsc/bootstrap_spsc.py --check-only
cmake -S . -B build-bench -DCMAKE_BUILD_TYPE=Release -DBRQ_BUILD_SPSC_BENCHMARKS=ON
cmake --build build-bench --parallel
ctest --test-dir build-bench --output-on-failure -L performance_harnessPinned headers and licenses are included in third_party/spsc/; the command above verifies them without network access. See bundled dependency details. run_release_benchmarks.py saves complete reproduction evidence; tune_spsc.py searches parameters within the configured memory budget; plot_release.py plots saved results without measuring again.
The block-depth experiments additionally require BRQ_ENABLE_POOL_DEPTH_STATS=ON. Formal performance comparisons use the default uninstrumented build. The executable names and command-line parameters are unchanged.
BRQ_BUILD_BENCHMARKS and BRQ_BUILD_COMPARISON are deprecated. Historical experiments remain in the original development directory.