Skip to content

Tags: DEIS-Tools/ptrie

Tags

v1.1.3

Toggle v1.1.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
bench: heaptrack integration & baseline (#7)

Summary

This PR adds a heaptrack-based benchmarking harness and CI workflow to
capture performance and memory artifacts and compare them against a
committed baseline.

What changed

- tools/bench/run_bench.sh: builds non-sanitized preset, runs test
binaries under heaptrack and /usr/bin/time, produces artifacts/
(heap-*.zst, heap-*.txt, time-*.txt) and artifacts/current_results.json.
- tools/bench/compare_results.py: compares
artifacts/current_results.json against benchmarks/baseline.json and
exits non-zero when regressions exceed thresholds (defaults: 5% perf, 5%
mem).
- .github/workflows/benchmarks.yml: CI job that installs heaptrack, runs
the bench script, uploads artifacts, and publishes current_results.json.
- benchmarks/baseline.json: initial baseline committed from a local run
(relative paths).
- .github/copilot-instructions.md: repository guidance for Copilot
sessions (added alongside this work).

Notes & usage

- To run locally: `chmod +x tools/bench/run_bench.sh &&
./tools/bench/run_bench.sh` (requires heaptrack and heaptrack_print).
- Compare locally: `python3 tools/bench/compare_results.py
[perf_pct_threshold] [mem_pct_threshold]` (defaults: 5 5).
- Baseline is stored in benchmarks/baseline.json. Update baseline by
running the bench script on a known-good machine and committing the new
file.

Caveats

- CI runs the benchmark job on ubuntu-latest; absolute performance
numbers vary between runners. Prefer comparing percentage changes and
set thresholds conservatively.
- Artifacts/ contains raw heaptrack outputs (zst) and summaries; they
are committed in this branch to provide an initial baseline and speed
review. Consider moving large artifacts to CI-only storage or LFS if
undesired in main.

Checklist

- [ ] Run bench locally and verify outputs
- [ ] Review thresholds in tools/bench/compare_results.py
- [ ] Decide baseline storage policy (in-repo vs artifact store)
- [ ] Consider gating PRs on perf/memory regression once stable

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

v1.1.2

Toggle v1.1.2's commit message
Removed sanitizers from MSYS2 builds (they are not available on windows)

v1.1.1

Toggle v1.1.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request petergjoel#8 from yrke/link-boost-lib

Updated to use ${Boost_LIBRARIES}

v1.1.0

Toggle v1.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request #6 from petergjoel/licence_change

changed license

1.0.3

Toggle 1.0.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Merge pull request #1 from petergjoel/move_semantics

Move semantics

1.0.2

Toggle 1.0.2's commit message
fixed compilation-errors with gcc9.1

1.0.1

Toggle 1.0.1's commit message
using nullptr instead of NULL