Range reads M0/M1 (indexed lookups, Storage trait), ZFP, in-place editing #17

Merged
osobh merged 52 commits from feat/p3-range-zfp-edit into main 2026-09-26 20:42:22 +00:00
Showing only changes of commit cadd27df5b - Show all commits
+9 -2
View File
@@ -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