diff --git a/docs/introduction/performance.md b/docs/introduction/performance.md index 65073f3..bca5e60 100644 --- a/docs/introduction/performance.md +++ b/docs/introduction/performance.md @@ -59,8 +59,8 @@ for why that matters and which cells it moved. ## Results -Measured 2026-09-12 with modern-di `main` at `18bbe64` (3.4.0 plus the template resolver of -#470, unreleased when measured) on an Apple M2 (macOS 26.6.2), CPython 3.14.7, median over 5 runs +Measured 2026-09-12 with modern-di at `18bbe64` (the template resolver of #470, first released +in 3.5.0) on an Apple M2 (macOS 26.6.2), CPython 3.14.7, median over 5 runs (ratios paired within each run); the footnote under each table bounds the across-run dispersion of each side's own median. Rival versions: dishka 1.10.1, dependency-injector 4.49.1, that-depends 4.1.0, wireup 2.12.0. Generated by `just bench-report`. @@ -276,7 +276,7 @@ context-backed parameter had its binding folded into the compiled closure. Toget worth −27 to −34% across C1, C3 and the whole by-type column, against rivals whose absolutes did not move between the two publications. -#470 (after 3.4.0) replaced the closures with a source template. The closure compiler had grown +#470, in 3.5.0, replaced the closures with a source template. The closure compiler had grown seven near-identical closures with a comment on each explaining why it could not share code with the others; every all-Python single-copy design that was tried cost 25-80% on a chain, because on CPython 3.12+ a closure's size costs on every call, not only its frames. A `Factory` resolver is