From 512c771e941a1fcf6144afe429753b7fad024134 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sat, 19 Sep 2026 13:38:27 +0300 Subject: [PATCH] docs(performance): name the release the snapshot ships in The measurement paragraph described 18bbe64 as "3.4.0 plus the template resolver of #470, unreleased when measured", which stopped being true the moment 3.5.0 shipped that commit. Name the release instead: 18bbe64 is in 3.5.0 permanently, so the sentence cannot rot again. --- docs/introduction/performance.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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