Skip to content

Benchmarks

Axiom tracks a small set of representative benchmarks. Simple assertions are expected to stay cheap, while more capable features cost more only when you use them. These snapshots exist to catch regressions and show the shape of the library.

Snapshot last refreshed: 2026-04-08.

Refreshes are manual and intentional. CI only validates that the committed snapshot and this page stay in sync.

Representative Benchmarks

Scenario Mean Allocated What it shows
Simple Be(...) pass 7.18 ns 32 B The baseline pass path stays cheap.
Collection Contain(...) pass 7.11 ns 0 B Common collection membership checks stay cheap on small inputs.
BeEquivalentTo(...) pass 5.3 μs 20.0 KB Structural comparison does more work, but only when you use it.
Async ContainAllAsync(...) pass 132.0 ns 344 B Async stream assertions pay to enumerate the stream, not before.
Vector BeNormalized(...) pass 6.42 ns 48 B Vector-specific checks stay focused on the metric they compute.
Ranking HaveRecallAt(...) pass 194.0 ns 600 B Retrieval metrics add top-k and set work only when you ask for them.

Methodology

These numbers come from the repo's BenchmarkDotNet suite using the shared ShortRun configuration and a Release build. The published values are rounded so tiny machine noise does not churn the docs. Use them to spot regressions and understand Axiom's pay-to-play shape, not to predict full test-suite runtime or compare different machines.