feat(library-selection): #205 Phase 7 perf benchmarks (P-02, P-03)#210
feat(library-selection): #205 Phase 7 perf benchmarks (P-02, P-03)#210
Conversation
Adds two `criterion` benchmarks that capture baseline numbers for issue #205's Phase 7 perf gates. This PR lands the harness; CI gating against thresholds is a follow-up once we have a stable measurement on a known runner spec. ## Benchmarks - `crates/fbuild-header-scan/benches/scan_throughput.rs` Measures `scan()` throughput on three input sizes (tiny/medium/large) with adversary fixtures (raw strings, comments, identifiers ending in `R`/`L`, char literals). Target per #205 P-03: >= 50 MB/s single-thread. - `crates/fbuild-library-select/benches/resolve_cold.rs` End-to-end `resolve()` walk on a synthetic 30-library framework tree with a 5-level transitive include chain. Target per #205 P-02: <= 200 ms cold for a typical teensy41 project. Uses `MiniFramework` from `fbuild-test-support` so the bench is hermetic. Both use `harness = false` and depend on the new workspace `criterion = "0.5"` dev-dep. Run with: ```bash uv run soldr cargo bench -p fbuild-header-scan --bench scan_throughput uv run soldr cargo bench -p fbuild-library-select --bench resolve_cold ``` ## Out of scope (still tracked) - P-01 (warm matrix) — gated on Phase 4 cache (zccache#130). - P-04 (cache-hit round-trip) — same. - CI gating against the captured thresholds — follow-up once runner variance is characterized. ## Verification - `uv run soldr cargo build --release -p fbuild-header-scan -p fbuild-library-select --benches` — green. - `uv run soldr cargo clippy --workspace --all-targets -- -D warnings` — green. - `uv run soldr cargo fmt --all --check` — clean. Refs: #205, #202, #204 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 34 minutes and 7 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Adds the two `criterion` benchmarks from #205 Phase 7 that don't depend on Phase 4 cache.
What ships
Out of scope (still tracked)
Run
```bash
uv run soldr cargo bench -p fbuild-header-scan --bench scan_throughput
uv run soldr cargo bench -p fbuild-library-select --bench resolve_cold
```
Verification
Refs: #202, #204, #205, zackees/zccache#130
🤖 Generated with Claude Code