TWOBUFQUEUE · DOCUMENTATION

Benchmark entry points

English · 简体中文

Benchmarks are grouped by the workload they measure. The library's default build has no benchmark dependency. See measurement scope and the parameter guide.

On this page

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:

Shell
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_harness

Pinned 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.