Repository navigation
refactor: reuse effective scope lookups during validation - #740
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: 132efb6 | Previous: 192a33b | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
7131082.198069591 iter/sec (stddev: 5.483374335489307e-9) |
3737504.7274780427 iter/sec (stddev: 1.1860166916965754e-8) |
0.52 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
7057294.504315731 iter/sec (stddev: 3.6777668558227816e-9) |
3310532.1534818243 iter/sec (stddev: 3.0625070738830345e-8) |
0.47 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
27678.206520432544 iter/sec (stddev: 0.00017524448959892593) |
14640.713957256086 iter/sec (stddev: 0.000056589556828772236) |
0.53 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
25031.69081345745 iter/sec (stddev: 0.00003491480385073811) |
11564.366479109463 iter/sec (stddev: 0.00022442683144522382) |
0.46 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
894.2030384139529 iter/sec (stddev: 0.00011072443877819967) |
423.364458398383 iter/sec (stddev: 0.00017396384945062658) |
0.47 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
898.571339496315 iter/sec (stddev: 0.00001735865652853978) |
372.90683763817896 iter/sec (stddev: 0.00017708649097530064) |
0.41 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
839.9820948293257 iter/sec (stddev: 0.000021077848732315485) |
390.49543993280724 iter/sec (stddev: 0.00012331223341308537) |
0.46 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
24982.564251868527 iter/sec (stddev: 0.000006074293853782568) |
12421.939754497993 iter/sec (stddev: 0.000014373374783546692) |
0.50 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
11954.944206245056 iter/sec (stddev: 0.000014495667053677346) |
6548.513653911986 iter/sec (stddev: 0.000021374652457352427) |
0.55 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
6363.312364948396 iter/sec (stddev: 0.00002131397892266697) |
3563.5953434056664 iter/sec (stddev: 0.00003826468150468733) |
0.56 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
19454.022848752564 iter/sec (stddev: 0.000006904298429635416) |
10125.473176033667 iter/sec (stddev: 0.000013298326326468386) |
0.52 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
9559.146501961653 iter/sec (stddev: 0.000010014619491155779) |
4241.574792061419 iter/sec (stddev: 0.00002166407204502503) |
0.44 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
4139.77194823346 iter/sec (stddev: 0.000028533798242518525) |
2083.358832772652 iter/sec (stddev: 0.000057276169576878695) |
0.50 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
59068.48991516746 iter/sec (stddev: 0.0000011957798831735738) |
40073.50817482459 iter/sec (stddev: 0.000004654593526005983) |
0.68 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
31591.808559707963 iter/sec (stddev: 0.000008133351069252143) |
13275.729941491543 iter/sec (stddev: 0.000017239686313531118) |
0.42 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
11561.220468027797 iter/sec (stddev: 0.00001967156163558514) |
6132.88771772826 iter/sec (stddev: 0.00002989928556680089) |
0.53 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
3089383.0339978472 iter/sec (stddev: 1.7179269024744533e-8) |
1512736.923444638 iter/sec (stddev: 4.635931905645066e-8) |
0.49 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
3448242.5686977217 iter/sec (stddev: 8.5456067747462e-9) |
1561924.5284170664 iter/sec (stddev: 4.47374263645997e-8) |
0.45 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
6794.568278018158 iter/sec (stddev: 0.000004608373863488824) |
3310.4943084539314 iter/sec (stddev: 0.00001118650112152193) |
0.49 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
113465.40249976916 iter/sec (stddev: 7.695493639340694e-7) |
58452.05198439162 iter/sec (stddev: 0.000002173116296098128) |
0.52 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
844823.3176673786 iter/sec (stddev: 3.4047171980432165e-8) |
421615.75044971926 iter/sec (stddev: 7.016932158044157e-8) |
0.50 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
130714.2419920145 iter/sec (stddev: 6.045162688468458e-7) |
61890.0777538698 iter/sec (stddev: 0.000001582320784271455) |
0.47 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
1177.0094139968965 iter/sec (stddev: 0.0005944055178711403) |
555.1895639764635 iter/sec (stddev: 0.0013037732432456632) |
0.47 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
4155916.6954380334 iter/sec (stddev: 2.0331360528271646e-8) |
1947668.5798530343 iter/sec (stddev: 3.0822791736998147e-8) |
0.47 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
7093666.618372087 iter/sec (stddev: 5.564056374524533e-9) |
3253249.711828917 iter/sec (stddev: 3.681921234350634e-8) |
0.46 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
1592666.9789921886 iter/sec (stddev: 3.0235893947305696e-8) |
756849.0391569673 iter/sec (stddev: 6.026001600471872e-8) |
0.48 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
893200.4667844686 iter/sec (stddev: 2.4222991223847764e-7) |
440908.1552814229 iter/sec (stddev: 4.044106380836565e-7) |
0.49 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
3762909.2481347746 iter/sec (stddev: 1.2539942177806843e-8) |
1745399.1496641096 iter/sec (stddev: 2.731718648708508e-8) |
0.46 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
2795049.436403197 iter/sec (stddev: 7.108930027212712e-8) |
1341977.2773621103 iter/sec (stddev: 1.4235941330196433e-7) |
0.48 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
1607584.196407762 iter/sec (stddev: 3.036091493493367e-8) |
761788.1575422399 iter/sec (stddev: 4.558266316042538e-8) |
0.47 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
6982826.715284019 iter/sec (stddev: 3.6431864519189546e-9) |
3041641.2550073755 iter/sec (stddev: 3.372316366254938e-8) |
0.44 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
84884.98607726394 iter/sec (stddev: 0.0000033300663512201664) |
36440.87733042569 iter/sec (stddev: 0.0000032145705040793355) |
0.43 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
50666.37514317388 iter/sec (stddev: 0.0000012991924253417407) |
21630.20885343135 iter/sec (stddev: 0.000004276831067075518) |
0.43 |
benchmarks/test_guard_validate.py::test_g11b_validate_shared_alias_chain |
5292.256288921307 iter/sec (stddev: 0.000006869014097871046) |
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.
Summary
The first lookup per alias or derived provider still uses the existing scope-chain traversal to preserve its cycle semantics.
Verification