This directory contains perf profiling helpers for the bench executable.
perf_bench_bin.sh: perf record for the bench binary directly (no lake overhead).perf_bench_lake.sh: perf record via lake exe bench (includes lake overhead).perf_profile.sh: heavier profiling (perf and optional c2c) with reports and flamegraph.All scripts write to perf/YYYY-MM-DD/:
report/: perf report logsflamegraph/: folded stacks and SVG flamegraphsc2c/: cache-to-cache reports (when enabled)Purpose: fast perf capture of the bench binary.
Usage examples:
./scripts/perf_bench_bin.sh --iterations 10000 --case linear
./scripts/perf_bench_bin.sh --cases linear,bloom --iterations 20000
Key options:
--iterations N--case NAME or --cases NAME,NAME--no-render is passed to the bench by default (override with PERF_BENCH_ARGS).Purpose: perf capture through lake exe bench (measures lake overhead too).
Usage examples:
./scripts/perf_bench_lake.sh --iterations 10000 --case linear
./scripts/perf_bench_lake.sh --cases linear,bloom --iterations 20000
Key options match perf_bench_bin.sh.
Purpose: heavier profiling (perf report + optional c2c) and flamegraph.
Usage examples:
./scripts/perf_profile.sh 10000
PERF_MODE=both ./scripts/perf_profile.sh 10000
PERF_MODE=c2c ./scripts/perf_profile.sh 10000
By default, scripts look in:
$HOME/.local/bin/FlameGraphYou can override with:
FLAMEGRAPH_DIR=/path/to/FlameGraphSTACKCOLLAPSE_BIN=/path/to/stackcollapse-perf.plFLAMEGRAPH_BIN=/path/to/flamegraph.plPERF_RESULTS_ROOT: results directory root (default: perf)PERF_RUN_LABEL: label for the run (default: HHMMSS)PERF_BENCH_ARGS: extra args passed to the bench executablePERF_MODE: for perf_profile.sh only (perf, c2c, both)perf may require elevated permissions depending on your kernel settings.kernel.perf_event_paranoid.