A C++ microbenchmark repository for cache behavior, memory access, synchronization, communication paths, language/runtime overhead, allocator tradeoffs, container lookup, and syscall or network boundary cost.
- Results summary: primary document for benchmark findings, plots, code links, and conclusions
README.md: build, run, and repository navigation
- Build intuition for cache hierarchy and memory access patterns
- Compare concurrency, communication, language, container, and allocator tradeoffs with reproducible microbenchmarks
- Measure syscall, IPC, and local transport overhead with small focused benchmarks
- Produce evidence-based performance notes from stable runs
- CMake >= 3.20
- A C++20 compiler (clang++ or g++)
- Git + internet access (for fetching
google/benchmark)
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -jscripts/run_all.shStandard pattern:
./build/benchmark/<binary_name> --benchmark_min_time=0.3sExamples:
./build/benchmark/bm_stride_access --benchmark_min_time=0.3s
./build/benchmark/bm_cache_levels --benchmark_min_time=0.3sQueue tuned run:
./build/benchmark/bm_queue \
--benchmark_filter='BM_Queue(MutexTransfer/batch:64/backoff:0|SpscRingTransfer/batch:8/backoff:0)$' \
--benchmark_min_time=1s \
--benchmark_repetitions=10 \
--benchmark_report_aggregates_only=true- Results summary: grouped benchmark findings, plots, jump index, and direct source links
Generate figures from benchmark runs:
python3 scripts/generate_plots.pyGenerate mechanism diagrams used by the summary:
python3 scripts/generate_mechanism_diagrams.pybenchmark/cache/: cache, locality, and working-set behaviorbenchmark/layout/: data layout experimentsbenchmark/concurrency/: synchronization, queues, and thread placementbenchmark/memory/: allocator and pooling behaviorbenchmark/cpu/: instruction-throughput experimentsbenchmark/containers/: container and lookup tradeoff benchmarksbenchmark/language/: dispatch and callable abstraction benchmarksbenchmark/object_model/: return-value optimization and object model behaviorbenchmark/syscalls/: file and syscall boundary measurementsbenchmark/ipc/: communication-path benchmarksbenchmark/network/: local socket and transport-path benchmarks


