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.Benchmarksdriven by BenchmarkDotNet. - Job:
MediumRunwith the in-process toolchain. - Runner:
ubuntu-latestGitHub Actions agent, refreshed on every push tomain. - 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.
- Realistic
- Resolve
- Build
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.
Steady-state resolution of a service by type once the container is built.
Container construction from cold, over a graph of singletons.