Skip to content

docs: regenerate the performance tables against that-depends 4.2.0 and wireup 2.12.1 - #636

Merged
lesnik512 merged 1 commit into
mainfrom
docs/regenerate-performance-tables
Oct 10, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
docs/regenerate-performance-tables

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Regenerates docs/introduction/performance.md after #635 bumped the comparative-tier rivals. The four results tables are pasted from just bench-report (5 runs) without edits. The header, the numbers quoted in the prose and the "What moved in this publication" section now match them.

Measured 2026-10-10 on the same Apple M2 (macOS 26.6.2) and CPython 3.14.7 as the 4.0.0 publication, with modern-di at ab327b3.

What moved

Another session's Python process was using about one core during the run. Across-run IQR stayed at 2.8% or less (the 4.0.0 run was 1.8% or less). If that's too noisy to publish, rerun on an idle machine.

Verification

  • mkdocs build --strict passes
  • tests/test_bench_report.py: 15 passed

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Details
Benchmark suite Current: ab34041 Previous: ab327b3 Ratio
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type 5600045.741188381 iter/sec (stddev: 1.8024542361587748e-8) 3796230.2067506164 iter/sec (stddev: 2.2016894112096956e-8) 0.68
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry 5440900.960969591 iter/sec (stddev: 1.785971922098484e-8) 3880215.5723586506 iter/sec (stddev: 1.1117761097720119e-8) 0.71
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve 27784.948761599033 iter/sec (stddev: 0.000035417621985403194) 20571.891001139265 iter/sec (stddev: 0.00005020645550637434) 0.74
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached 22119.60554184751 iter/sec (stddev: 0.00008165624346520518) 16706.921491087753 iter/sec (stddev: 0.0002688280325621716) 0.76
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] 737.500811340699 iter/sec (stddev: 0.00004503960608752599) 408.87719585996916 iter/sec (stddev: 0.00006380477868859592) 0.55
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] 693.7887612012582 iter/sec (stddev: 0.00006845557515799535) 353.05496125820997 iter/sec (stddev: 0.00009605526515037377) 0.51
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] 658.4557944807525 iter/sec (stddev: 0.000057141230929376994) 383.03404524037387 iter/sec (stddev: 0.00023238050187812838) 0.58
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] 15182.702953862094 iter/sec (stddev: 0.000008338539505725873) 13394.381949705563 iter/sec (stddev: 0.00000704658119459766) 0.88
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] 6533.249010867386 iter/sec (stddev: 0.000025914361255943924) 6262.760701128717 iter/sec (stddev: 0.000017720342212326327) 0.96
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] 3444.5306278812855 iter/sec (stddev: 0.0000491308366437989) 3399.6417400926744 iter/sec (stddev: 0.00004235702471290802) 0.99
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] 10396.262197185826 iter/sec (stddev: 0.00001775651566722593) 8358.985550722324 iter/sec (stddev: 0.000012666107144002858) 0.80
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] 4216.870116008499 iter/sec (stddev: 0.0000362418844663119) 3991.468634939831 iter/sec (stddev: 0.000028646092803128944) 0.95
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] 2112.871199338514 iter/sec (stddev: 0.000052578575358017594) 1848.5361542332341 iter/sec (stddev: 0.00005477419121188742) 0.87
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] 30451.62809602825 iter/sec (stddev: 0.000004119178419852186) 40022.06549842212 iter/sec (stddev: 0.000005498973787204419) 1.31
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] 11774.926980729526 iter/sec (stddev: 0.000018233439727718593) 14259.898775966156 iter/sec (stddev: 0.000017464796929260837) 1.21
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] 5558.063374340183 iter/sec (stddev: 0.0000417017000054041) 5754.310781995923 iter/sec (stddev: 0.00003356929144625474) 1.04
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container 2207985.377834516 iter/sec (stddev: 5.092146631918864e-8) 1597866.2094593206 iter/sec (stddev: 2.8466424621061744e-8) 0.72
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope 2399388.25198217 iter/sec (stddev: 1.7850598201524394e-8) 1675968.2906844022 iter/sec (stddev: 1.934641984365072e-8) 0.70
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch 3428.380931259632 iter/sec (stddev: 0.000008542824402329704) 2974.4359631824095 iter/sec (stddev: 0.000009310290764395594) 0.87
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control 82476.81642322976 iter/sec (stddev: 0.0000010832736663002957) 56045.761735333464 iter/sec (stddev: 0.000004339773637339862) 0.68
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync 467005.3155708673 iter/sec (stddev: 8.28529377909236e-8) 384089.27832577546 iter/sec (stddev: 8.814130931303454e-8) 0.82
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale 75394.3945073056 iter/sec (stddev: 0.0000012644797740178197) 56949.416219946106 iter/sec (stddev: 0.000002002413817813893) 0.76
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers 679.529152000041 iter/sec (stddev: 0.0008808164404513232) 526.8715294370162 iter/sec (stddev: 0.0012012251058835452) 0.78
benchmarks/test_guard_resolve.py::test_g1_transient_resolve 2954824.7190697473 iter/sec (stddev: 2.5064819335418454e-8) 2076488.384049018 iter/sec (stddev: 2.806700688454109e-8) 0.70
benchmarks/test_guard_resolve.py::test_g2_cached_resolve 5539850.387479116 iter/sec (stddev: 1.2768457953122149e-8) 3302371.181750321 iter/sec (stddev: 2.4689855614275137e-8) 0.60
benchmarks/test_guard_resolve.py::test_g3_deep_chain 1054720.6196685496 iter/sec (stddev: 4.3267243592524475e-8) 700059.2600176225 iter/sec (stddev: 6.974852131085896e-8) 0.66
benchmarks/test_guard_resolve.py::test_g4_wide_resolve 569230.8200237781 iter/sec (stddev: 3.2201859060924786e-7) 427285.24809034634 iter/sec (stddev: 4.13325042226588e-7) 0.75
benchmarks/test_guard_resolve.py::test_g5_cross_scope 2662439.0684223864 iter/sec (stddev: 3.2871018075265306e-8) 1827027.204298639 iter/sec (stddev: 4.6473050604127136e-8) 0.69
benchmarks/test_guard_resolve.py::test_g9_context_resolve 1938337.5102045329 iter/sec (stddev: 1.1712804710716354e-7) 1380479.134623578 iter/sec (stddev: 1.7091258365125786e-7) 0.71
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve 1038221.0704898619 iter/sec (stddev: 3.5280335589290185e-8) 689737.8220308513 iter/sec (stddev: 6.83504389683252e-8) 0.66
benchmarks/test_guard_resolve.py::test_g18_alias_hop 5492711.309432151 iter/sec (stddev: 1.1850945987988182e-8) 3554036.6392777804 iter/sec (stddev: 2.0667600405578157e-8) 0.65
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain 42327.57470915251 iter/sec (stddev: 0.00001591537369772318) 36416.568397651434 iter/sec (stddev: 0.000018577553880640194) 0.86
benchmarks/test_guard_validate.py::test_g11_validate_wide 25174.856581846645 iter/sec (stddev: 0.000023054361694171084) 19045.863684073403 iter/sec (stddev: 0.00025450672028487465) 0.76

This comment was automatically generated by workflow using github-action-benchmark.

@lesnik512
lesnik512 merged commit f5e9c9e into main Oct 10, 2026
11 checks passed
@lesnik512
lesnik512 deleted the docs/regenerate-performance-tables branch October 10, 2026 09:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant