/ autoresearch.md
autoresearch.md
1 # Autoresearch: Bloom filter runtime 2 3 ## Objective 4 Optimize `bloomy`'s hot-path runtime for Bloom filter insertions and membership checks on a fixed string-heavy workload representative of the crate's existing benchmarks. 5 6 ## Metrics 7 - **Primary**: `total_us` (µs, lower is better) — median total time for one insert pass, one contains-hit pass, and one contains-miss pass 8 - **Secondary**: `insert_us`, `contains_hit_us`, `contains_miss_us` — phase timings to localize wins/regressions 9 10 ## How to Run 11 `./autoresearch.sh` — outputs `METRIC ...` lines. 12 13 ## Files in Scope 14 - `src/bloom.rs` — Bloom filter hashing and high-level operations 15 - `src/bitvec.rs` — packed bit-vector primitives used by the filter 16 - `examples/autoresearch_bench.rs` — deterministic benchmark workload and metric reporting 17 - `autoresearch.sh` — benchmark entrypoint 18 - `autoresearch.checks.sh` — correctness checks 19 - `autoresearch.md` — session notes and accumulated findings 20 - `autoresearch.ideas.md` — backlog for larger ideas worth revisiting later 21 22 ## Off Limits 23 - Public API shape unless a change is clearly internal-only and preserves documented behavior 24 - New dependencies 25 - Unrelated docs/examples/benchmarks unless needed to support or validate the optimization 26 27 ## Constraints 28 - Preserve crate behavior and tests 29 - `cargo test --quiet` must pass for any kept result 30 - Keep benchmark deterministic and reasonably fast 31 32 ## What's Been Tried 33 - Baseline setup uses a deterministic custom benchmark instead of Criterion so experiments can run quickly and report structured phase timings.