Context
The Configure step in .github/workflows/ci.yml passes -DCMAKE_CXX_FLAGS="-fno-omit-frame-pointer -fsanitize=address" for every matrix combination, including Release. Two consequences:
- The Release-only benchmark step (latency, throughput, orderbook, routing) measures ASan-instrumented code, which typically runs 2x or slower. Those numbers do not represent the real system, and any performance baseline derived from them is skewed.
- The uploaded Release build artifacts are ASan-instrumented binaries, which is not what anyone downloading a release build expects.
What to do
- Keep ASan on the Debug matrix entries (that is where it catches memory bugs cheaply).
- Build Release without sanitizers, and run benchmarks plus artifact upload from that clean Release build.
- If sanitized Release coverage is still wanted, add it as a separate matrix entry that skips benchmarks and artifact upload.
Notes
Worth re-baselining docs/performance_baseline.json after this lands, since the current numbers may have been recorded under ASan.
Context
The Configure step in
.github/workflows/ci.ymlpasses-DCMAKE_CXX_FLAGS="-fno-omit-frame-pointer -fsanitize=address"for every matrix combination, including Release. Two consequences:What to do
Notes
Worth re-baselining
docs/performance_baseline.jsonafter this lands, since the current numbers may have been recorded under ASan.