docs(performance): republish the comparative tables after #540, #541 and #542 - #543
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: 8c5cabf | Previous: 630de77 | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
5059376.33473904 iter/sec (stddev: 9.73522275080419e-9) |
3458595.595748503 iter/sec (stddev: 1.9175525176768685e-8) |
0.68 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
5005012.269539626 iter/sec (stddev: 5.295967710094353e-9) |
3505387.8161276644 iter/sec (stddev: 1.9896978493030955e-8) |
0.70 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
21130.287439605687 iter/sec (stddev: 0.00021888307001103854) |
15782.857743208093 iter/sec (stddev: 0.0000514760284889913) |
0.75 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
19919.412702398004 iter/sec (stddev: 0.00003534473747289569) |
12991.65479073352 iter/sec (stddev: 0.00013965726056910309) |
0.65 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
631.8422832697348 iter/sec (stddev: 0.000018771817936865987) |
375.6259288687818 iter/sec (stddev: 0.00005540898292543445) |
0.59 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
600.0372840866078 iter/sec (stddev: 0.000023303024991927734) |
359.97883517557875 iter/sec (stddev: 0.000042464375522945685) |
0.60 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
544.9428266107432 iter/sec (stddev: 0.00003561166298516465) |
328.9776364261448 iter/sec (stddev: 0.00017426207080896422) |
0.60 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
2316.8810132357285 iter/sec (stddev: 0.0001334352200754165) |
1620.4461412328767 iter/sec (stddev: 0.0002210603431817769) |
0.70 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
1840.4705015620684 iter/sec (stddev: 0.00015807551849882914) |
1322.1786992827583 iter/sec (stddev: 0.00021799588538647617) |
0.72 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
1144.2349324859263 iter/sec (stddev: 0.0011713937349736065) |
963.2801461411867 iter/sec (stddev: 0.00019582103879055678) |
0.84 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
2259.637126381067 iter/sec (stddev: 0.00015298225581638047) |
1413.5869025521245 iter/sec (stddev: 0.0011339355944337967) |
0.63 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
1644.2597228261086 iter/sec (stddev: 0.00015534926433204702) |
1204.4232685427303 iter/sec (stddev: 0.00020564581985015468) |
0.73 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
1060.344665563797 iter/sec (stddev: 0.00016963474815149615) |
794.3816773325422 iter/sec (stddev: 0.00022410849589942912) |
0.75 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1113255.705456117 iter/sec (stddev: 2.7338489615479312e-8) |
790971.9098978229 iter/sec (stddev: 7.992825540723303e-8) |
0.71 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
977675.3456454482 iter/sec (stddev: 7.483835091905133e-8) |
742402.9396779829 iter/sec (stddev: 5.579483001486511e-8) |
0.76 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
3243.885595541588 iter/sec (stddev: 0.000025819530674355453) |
2480.450741996853 iter/sec (stddev: 0.000011115551558497369) |
0.76 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
74323.79743270615 iter/sec (stddev: 0.000001595546900897344) |
58336.27524530338 iter/sec (stddev: 0.000001807854169572081) |
0.78 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
62128.59025241559 iter/sec (stddev: 0.000002278412966697436) |
44542.35465145128 iter/sec (stddev: 0.0000027101930811755413) |
0.72 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
763.2411266948477 iter/sec (stddev: 0.00011795305523744461) |
579.217454201511 iter/sec (stddev: 0.000019235655632014152) |
0.76 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
2986817.903211386 iter/sec (stddev: 2.7017668494316478e-8) |
2162940.0021536555 iter/sec (stddev: 5.0203571063095606e-8) |
0.72 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
4735621.162442394 iter/sec (stddev: 1.6173014511341667e-8) |
3375449.377799119 iter/sec (stddev: 2.2651655701711203e-8) |
0.71 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
932869.3023747454 iter/sec (stddev: 2.3652543530951174e-7) |
725224.3245754899 iter/sec (stddev: 4.28630234845298e-8) |
0.78 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
624908.1970797918 iter/sec (stddev: 3.230190135947708e-7) |
475077.03136465105 iter/sec (stddev: 3.345593938388199e-7) |
0.76 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
2614746.3457473833 iter/sec (stddev: 5.5459065732966545e-8) |
1944942.565849936 iter/sec (stddev: 2.701008105482467e-8) |
0.74 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
1373616.609246794 iter/sec (stddev: 1.6803505698944785e-7) |
1044042.5431684735 iter/sec (stddev: 1.7091475241879198e-7) |
0.76 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
1067889.7563945032 iter/sec (stddev: 4.8031770206028233e-8) |
716780.8797257992 iter/sec (stddev: 1.0391109622886306e-7) |
0.67 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
3379861.0640467065 iter/sec (stddev: 8.867753522765185e-9) |
2103044.4238886614 iter/sec (stddev: 1.7001305379809235e-8) |
0.62 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
33251.51355071251 iter/sec (stddev: 0.000023502662129626023) |
23120.482065167533 iter/sec (stddev: 0.000022322313068631583) |
0.70 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
20107.803565069476 iter/sec (stddev: 0.00002247504177909432) |
14079.545291542308 iter/sec (stddev: 0.00002781562242493228) |
0.70 |
This comment was automatically generated by workflow using github-action-benchmark.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Regenerated
docs/introduction/performance.mdwithjust bench-report(5 runs) atmain630de77, the first publication after #540 (inline cross-scope hop), #541 (one lock per tree) and #542 (no coroutine for finalizer-less items onclose_async). Same machine and CPython as the 3.5.0 publication (Apple M2, macOS 26.6.2, CPython 3.14.7), so the page says absolutes are comparable this time, not only ratios.Numbers
18bbe64)630de77)C1-C3 ratios moved by at most 0.04 and inside their cells' spread. The three changes sit on paths those bodies never take, and the "what moved" section says so, then attributes C4 and C6 to the guard-tier deltas measured per change in #540 and #541. #542 has no cell on this page: C4's cached item has an async finalizer and C6's child caches nothing and closes synchronously.
Narrative changes
mainat630de77as unreleased when measured, the same shape docs(performance): republish the comparative tables after the template resolver #471 used before docs(performance): name the release the snapshot ships in #500 relabelled it. Worth the same relabel when this lands in a tagged release.Not changed
Checks
mkdocs build --strictclean.tests/test_bench_report.pyandtests/test_docs_slug_census.pypass; no code changed.