Skip to content

CI benchmarks and release artifacts are built with AddressSanitizer #78

Description

@chizy7

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:

  1. 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.
  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingciCI/CD workflows and automationperformanceLatency, throughput, or resource usage

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions