Skip to content

Conversation

@badboy
Copy link
Member

@badboy badboy commented Jan 9, 2026

This is a first refactoring of our benchmarks.

  • It moves everything into a benchmark crate. That way it's separate from the Glean crates and doesn't interfere with the Rust version requirements or dependency requirements. We are a bit more free to use crates without propagating any vetting directly (plus those deps never show up in m-c then).
  • It adds the Gungraun framework, which uses valgrind's cachegrind. The idea is that Instruction count (and some of the other numbers) is a stable measure that should give us an idea of how code is performing.
  • Because the benchmarking does not depend as much on the hardware it's run on (other than the architecture) we can run those on CI and make them comparable.

I plan to collect those numbers over time and provide a dashboard so we have an (after-the-fact) overview of the performance.

…t numbers on CI

This also moves it out of the main workspace, so it properly splits out
the dependencies.
@badboy badboy force-pushed the push-povlnvknxktp branch from 18468cc to 1f2612a Compare January 9, 2026 13:06
@badboy badboy deployed to pull_request January 9, 2026 13:06 — with GitHub Actions Active
jobs:
bench:
name: Benchmarks
environment: ${{ github.ref_name == 'main' && 'production' || 'pull_request' }}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I plan on collecting the data and pushing that to another repository. That will require a secret (the push token). For security we split that out into the production environment, so the token is available when actually run on a push to main.

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.

2 participants