Skip to content

Commit 400e205

Browse files
committed
PR 1 Task 1.7: CHANGELOG entry under [Unreleased] for bench-rollup PR 1
Adds two bullets to the [Unreleased] Added section covering bench_latency --bmf-out emission and the new three-job bench.yml structure (bench- throughput / bench-latency / bench-upload). Adds a Changed bullet documenting the adapter.nim PushResult / PopResult unification. Plan reference: impl plan Track 1 Task 1.7 (line 386-393).
1 parent 94e0d04 commit 400e205

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4848
`-d:BenchMupmucRuns=N`, `-d:BenchMupmucWarmup=N`,
4949
`-d:BenchChannelsRuns=N`, `-d:BenchChannelsWarmup=N`. Defaults match
5050
the prior hard-coded `runs = 10`, so production runs are unchanged.
51+
- `bench_latency` now emits Bencher Metric Format JSON natively via
52+
`--bmf-out=<path>`, mirroring `bench_throughput`'s CLI surface (PR 1).
53+
Positional args filter the variants run (`sipsic`, `mupmuc`, `sipmuc`,
54+
`mupsic`); without any positional arg, all four bounded lockfreequeues
55+
variants run at the 1p1c smoke shape. Emitted slugs:
56+
`lockfreequeues_sipsic/spsc/1p1c`,
57+
`lockfreequeues_sipmuc/mpmc/1p1c`,
58+
`lockfreequeues_mupsic/mpsc/1p1c`,
59+
`lockfreequeues_mupmuc/mpmc/1p1c`. Each carries
60+
`latency_p50_ns` / `latency_p95_ns` / `latency_p99_ns` measures
61+
(`latency_p999_ns` / `latency_max_ns` deferred to PR 6's threshold-
62+
gating work). The binary is built on top of
63+
`bench_common.runLatencyHarness` and uses per-binary intdefines:
64+
`-d:BenchLatencyRuns=N` (default 33), `-d:BenchLatencyMessageCount=N`
65+
(default 100_000), `-d:BenchLatencyWarmupRuns=N` (default 3).
66+
- New `bench-latency` job in `.github/workflows/bench.yml` sibling to
67+
`bench-throughput`. Both jobs upload per-binary BMF artifacts
68+
(`bench-throughput-bmf` / `bench-latency-bmf`) consumed by a new
69+
`bench-upload` job that downloads via `actions/download-artifact@v4`
70+
pattern `bench-*-bmf`, runs `merge_bmf.py` to union the fragments,
71+
and performs the single `bencher run` upload that co-locates latency
72+
+ throughput measures on shared per-slug histories. (Multiple
73+
`bencher run` invocations create separate Bencher Reports and would
74+
NOT co-locate measures — see merge rationale in design 1.)
5175

5276
### Changed
5377

@@ -72,6 +96,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7296
- `benchmarks/README.md` rewritten to document the new flow
7397
(bench_common module, adapter convention, `--bmf-out` flag,
7498
merge_bmf.py, expected slug set).
99+
- `benchmarks/nim/adapter.nim` now re-exports `PushResult` / `PopResult`
100+
from `bench_common` instead of defining its own copies, unifying the
101+
two parallel type definitions introduced by PR 0 Task 0.1. Both
102+
adapter packs (legacy `lockfreequeues_sipsic` / `lockfreequeues_mupmuc`
103+
/ `channels` and the newer `lockfreequeues_sipmuc` / `mupsic` /
104+
`unbounded_*`) now flow through the same `runLatencyHarness` and
105+
`runThroughputHarness` without per-call-site type conversion. No
106+
external API change: legacy callers that imported `./adapter` for
107+
`PushResult` / `PopResult` continue to compile (PR 1).
75108

76109
### Removed
77110

0 commit comments

Comments
 (0)