Skip to content

chore: migrate proxy benchmarks to Gungraun - #122

Merged
mjc merged 2 commits into
mainfrom
chore/gungraun-benchmarks
Sep 14, 2026
Merged

mjc merged 2 commits into
mainfrom
chore/gungraun-benchmarks

Conversation

@mjc

@mjc mjc commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace the removed IAI benchmark dependency with Gungraun
  • provide the pinned Gungraun runner in the Nix development shell
  • keep instruction, branch, cache, and Divan measurements available

Evidence

  • formatting check passed
  • clippy with all features and warnings denied passed
  • proxy benchmark targets compile
  • Gungraun classifier benchmark completed without regressions
  • Divan 16-request window median: 102.8 ns

All commits are GPG-signed.

Summary by CodeRabbit

  • Performance

    • Improved request serialization benchmarking to measure more efficient reuse of shared output buffers across multiple requests.
    • Continued coverage of cache, request classification, and client-socket round-trip performance scenarios.
  • Developer Experience

    • Updated Callgrind-based benchmarking support to use Gungraun.
    • Added Gungraun runner support to the development environment and refreshed dependency-audit coverage.

@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Warning

Review limit reached

Next included review available in 44 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 436b3b49-13f5-49ae-8d05-201f7a3daefd

📥 Commits

Reviewing files that changed from the base of the PR and between 1e516c2 and ba80f2f.

📒 Files selected for processing (1)
  • benches/cache_miss_roundtrip_callgrind.rs

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 1c09c50f-05d1-4c7a-ab35-e4d42b8ba334

📥 Commits

Reviewing files that changed from the base of the PR and between 145b36c and 1e516c2.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • Cargo.toml
  • benches/cache_miss_roundtrip_callgrind.rs
  • benches/request_classifier_callgrind.rs
  • benches/request_serialization.rs
  • flake.nix
  • scripts/audit-advisories

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The PR replaces iai-callgrind with gungraun, packages the Gungraun runner in the development shell, updates advisory tracking, and adds batched request serialization benchmarking.

Changes

Benchmark migration

Layer / File(s) Summary
Gungraun tooling and dependency setup
Cargo.toml, flake.nix, scripts/audit-advisories
The development dependency, runner package, development shell, and advisory tracking now use Gungraun.
Callgrind benchmark framework migration
benches/cache_miss_roundtrip_callgrind.rs, benches/request_classifier_callgrind.rs
The benchmarks import Gungraun APIs. The cache benchmark also sets a recursion limit of 256.
Batched request serialization
benches/request_serialization.rs
Serialization separates clearing from appending. A 16-request window benchmark reuses one sink and clears it once.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 1e516

The benchmark migration and added serialization benchmark have no remaining concrete merge-blocking risk in the supplied evidence.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the main change: migrating proxy benchmarks from IAI to Gungraun.
Docstring Coverage ✅ Passed Docstring coverage is 80.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 3 files. (3 skipped: 3 u…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/gungraun-benchmarks

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.

❤️ Share

A rabbit reads each line,
The patch grows clear beneath the moon,
Small changes hop in place,
Tests guard the garden path,
Reviews bloom before the dawn.

Comment @coderabbitai help to get the list of available commands.

@mjc
mjc merged commit 03ea015 into main Sep 14, 2026
8 checks passed
@mjc
mjc deleted the chore/gungraun-benchmarks branch September 14, 2026 02:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant