aaron-ang
opthash-rs
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(funnel): keep passed tombstone on range failure; share lookup path search_exact_mode dropped the first tombstone it passed when a later probe hit the range-reduction cap. find_for_entry then mapped the failure to EXHAUSTED and forced an exceptional placement plus a PlacementRecovery epoch, where the old entry path reused the tombstone. Range failure now reports that tombstone as Vacant, which also covers insert(). find_location and find_for_entry now share one locate() helper for the membership gate, exact walk, and exceptional full scan, so get and entry cannot drift apart. locate() maps misses through a closure: carrying the SearchResult to find_location cost Funnel get_miss ~14% even under LTO; the closure form measures at parity. Also: - debug_assert that a Vacant slot is still free before placement - Elastic find_for_entry delegates to find - Elastic route_filter reads route_bins by bounds-checked place indexing instead of a raw pointer offset - split the membership refresh round-trip into its own test
perf/core-operation-optimizations
20 days ago
docs: remove inline workload measurement comments
perf/core-operation-optimizations
24 days ago
test: attribute deletion churn maintenance through epoch snapshots
perf/core-operation-optimizations
24 days ago
chore: release v0.11.1
release-plz-2026-09-08T03-55-37Z
1 month ago
bench: measure every map at its full insert budget; shrink mode for the memory example (#139)
main
1 month ago
test: hide the fixed hasher behind a Deterministic constructor trait `HashMap::with_hasher(fixed_hasher())` and `with_capacity_and_hasher(n, fixed_hasher())` at every test site were noise. Both support modules now export fixed-hasher aliases plus a `Deterministic` trait providing `new` / `with_capacity`. The library's inherent constructors require `Hasher = DefaultHashBuilder`; when that bound fails on the fixed alias, resolution falls through to the trait, so the suites read exactly as the std/hashbrown tests they port: `HashMap::new()`, `HashMap::with_capacity(n)`. - `tests/support`: `ElasticHashMap`/`FunnelHashMap`/`ElasticHashSet`/ `FunnelHashSet` aliases over `FixedHashBuilder` and `Deterministic` impls for them; the macro suites import `$TestMap as HashMap` from there. - `src/common/test_support.rs`: `Deterministic` blanket impl for any `HashMap` whose backend hashes with `FixedHashBuilder`, and a `FixedElasticHashMap` alias (the public alias's default hasher parameter would otherwise let the inherent constructor win).
bench/memory-shrink-mode
1 month ago
test: use fixed-seed hashers so every test is deterministic `funnel::tests::deletes_past_the_threshold_refresh_the_membership_filter` flaked once on a probabilistic false-positive bound under the process-random foldhash seed. Rather than fix that one test, every test that hashes a key now builds its map with a fixed-seed `foldhash::fast::FixedState`: - `src/common/test_support.rs` exports `FixedHashBuilder`, `FIXED_HASH_SEED`, and `fixed_hasher()`; the filter helper and all elastic unit tests use them. - `tests/support/mod.rs` provides the same for the integration suites. The macro suites (`common`, `map_parity`, `set_parity`) alias `HashMap`/`HashSet` to the fixed-hasher instantiation and construct via `with_hasher` / `with_capacity_and_hasher`; `epoch_lifecycle` does the same per site. - The default hasher remains only in constructor-surface checks that hash no key (`test_zero_capacities`, reserve read-backs). `AGENTS.md` records the rule: fixed-seed hashers in tests, treat a flake as a determinism bug.
bench/memory-shrink-mode
1 month ago
refactor(reserve): name the binary64 exponent constants in the f64 conversions 1023, 1074, and 52 become F64_EXPONENT_BIAS, F64_MIN_SUBNORMAL_EXPONENT, and F64_MANTISSA_BITS, derived from f64::MAX_EXP and f64::MANTISSA_DIGITS. No behaviour change.
bench/memory-shrink-mode
1 month ago
Latest Branches
CodSpeed Performance Gauge
-1%
perf: streamline Elastic metadata and Funnel traversal
#140
20 days ago
8496179
perf/core-operation-optimizations
CodSpeed Performance Gauge
0%
chore: release v0.11.1
#138
1 month ago
dcac3ce
release-plz-2026-09-08T03-55-37Z
CodSpeed Performance Gauge
-34%
bench: measure every map at its full insert budget
#139
1 month ago
ec12e75
bench/memory-shrink-mode
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs