diff --git a/CHANGELOG.md b/CHANGELOG.md index ba7b828..fe377f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -131,8 +131,15 @@ Criterion bench itself, old and new as separate binaries run alternately (3 rounds), agrees except for `ObjectHeader::parse`, which it puts about 7% slower (25.9 vs 24.1 µs for 401 headers) while the listing that - parses those headers is 5–8% faster; that one remains unexplained and is - to be rechecked on an idle machine. + parses those headers is 5–8% faster. **Rechecked on an idle tank + (2026-09-26, load 1.95 at the start, 3–4 during; Criterion, `main` + `479d8b4` vs this branch `b49ec39` as separate binaries, 2 alternating + rounds):** `ObjectHeader::parse` for 401 headers 24.0–24.1 µs → 25.5–25.8 + µs (+6–7%, about 4 ns per header — real, not noise); symbol-table nodes + 2.39 → 1.94–2.04 µs (−17%); group B-tree walk 405–411 → 322–351 ns + (−16%); listing the 400-group file through the facade 8.56–8.71 → + 8.40–8.42 ms (−2.4%). Net, local metadata reads are slightly faster; the + per-header cost is a known, small regression. - New equivalence harness `clawhdf5-format/tests/storage_equivalence.rs`: every converted parser runs over the file as a slice and over `storage::CountingStorage` — a `Storage` that serves an in-memory buffer