Skip to main content

Benchmarks

Awaiten wires the graph at build time, so there is nothing to reflect over at runtime. These benchmarks compare it against Microsoft.Extensions.DependencyInjection, Autofac, Jab, Pure.DI, DryIoc and Simple Injector across the same graphs.

Methodology
  • Suite: Awaiten.Benchmarks driven by BenchmarkDotNet.
  • Job: MediumRun with the in-process toolchain.
  • Runner: ubuntu-latest GitHub Actions agent, refreshed on every push to main.
  • Each row shows time and allocated memory, sorted fastest-first; bars are scaled within the row so length corresponds to magnitude. The Awaiten row is highlighted as the baseline (1.00x) and every other row shows its ratio relative to Awaiten. Lower is better.
  • Click a row to hide that container so the others spread out. Build and Resolve are measured at container sizes of 8 and 256 registrations; switch between them with the inline tabs.

A per-request pattern, the shape a web app actually runs: open a scope, resolve a deep graph of mixed lifetimes rooted at a request handler, then dispose the scope.

Time
Memory
Captured on commit 6657202c (2026-07-08) on ubuntu-latest.

View the benchmark source on GitHub →