Repository navigation
Find validation scope owners without building chains - #744
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: ab6d032 | Previous: 97bcd5d | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
4908580.871900452 iter/sec (stddev: 7.401639822131585e-9) |
3699850.9255874944 iter/sec (stddev: 1.376854715789107e-8) |
0.75 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
4887897.297415905 iter/sec (stddev: 5.3652289536851076e-9) |
3508592.9300299203 iter/sec (stddev: 2.5891891337702616e-8) |
0.72 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
20716.511160675742 iter/sec (stddev: 0.000043503113063456174) |
14165.19362577081 iter/sec (stddev: 0.000060649980088460166) |
0.68 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
17520.504886379622 iter/sec (stddev: 0.00012381346463645647) |
11357.723740936732 iter/sec (stddev: 0.00026127632918110984) |
0.65 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
633.0452362181296 iter/sec (stddev: 0.000024114908445444653) |
422.04808962536663 iter/sec (stddev: 0.00012601608327816885) |
0.67 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
591.9413682386044 iter/sec (stddev: 0.000025444663661813316) |
423.628515795218 iter/sec (stddev: 0.0001446679735805736) |
0.72 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
557.9327087233771 iter/sec (stddev: 0.00004486374779754886) |
404.2998584103321 iter/sec (stddev: 0.000092606182422299) |
0.72 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
18549.161846797473 iter/sec (stddev: 0.0000076010289312304656) |
13491.087618588588 iter/sec (stddev: 0.00001199873573007289) |
0.73 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
9307.745720013729 iter/sec (stddev: 0.000013861857313271223) |
6670.13439540484 iter/sec (stddev: 0.000023909310520331817) |
0.72 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
4772.872899560397 iter/sec (stddev: 0.00002967919097750373) |
3599.650689929737 iter/sec (stddev: 0.00003635546645356621) |
0.75 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
14343.815276241317 iter/sec (stddev: 0.000008894297179049655) |
10358.50080732401 iter/sec (stddev: 0.000014073774178185547) |
0.72 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
6439.725377891077 iter/sec (stddev: 0.00001540775265167988) |
4371.102365446031 iter/sec (stddev: 0.000019782923858144132) |
0.68 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
2874.4453757665738 iter/sec (stddev: 0.000031364984120241665) |
2067.4041637129326 iter/sec (stddev: 0.00004360325316261725) |
0.72 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
49851.194190560636 iter/sec (stddev: 0.000003319914055016801) |
40558.8605372135 iter/sec (stddev: 0.000005084817026047298) |
0.81 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
20250.372226603424 iter/sec (stddev: 0.000011422051223416049) |
14060.620490376548 iter/sec (stddev: 0.000017260393680348955) |
0.69 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
7991.887701370864 iter/sec (stddev: 0.000023688271544240196) |
6358.909237195522 iter/sec (stddev: 0.000028349052225105085) |
0.80 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1990518.761041116 iter/sec (stddev: 2.3264843076034514e-8) |
1586480.4577673606 iter/sec (stddev: 3.762009590005746e-8) |
0.80 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
2171073.8923904034 iter/sec (stddev: 1.8368919083992156e-8) |
1616806.5096739451 iter/sec (stddev: 3.434303966440814e-8) |
0.74 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
4310.515880916729 iter/sec (stddev: 0.000010038374698203042) |
3207.9407538232276 iter/sec (stddev: 0.000011231566584996495) |
0.74 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
72007.85502022343 iter/sec (stddev: 0.0000014223129119777033) |
54913.80818764173 iter/sec (stddev: 0.0000023437217869468475) |
0.76 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
568336.5607275774 iter/sec (stddev: 7.605385844372033e-8) |
413011.71092513134 iter/sec (stddev: 9.211248300820136e-8) |
0.73 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
87982.60932046305 iter/sec (stddev: 0.0000010271276086797648) |
62777.69099313747 iter/sec (stddev: 0.0000016468032451379733) |
0.71 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
764.8922334177968 iter/sec (stddev: 0.001266634072818239) |
553.2167596549203 iter/sec (stddev: 0.0013037444848985635) |
0.72 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
2739804.093091645 iter/sec (stddev: 3.3625264335550557e-8) |
1937385.539864514 iter/sec (stddev: 3.124409297417119e-8) |
0.71 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
4648106.714578968 iter/sec (stddev: 8.86018465682685e-9) |
3047407.203467646 iter/sec (stddev: 3.44390870855922e-8) |
0.66 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
1051955.4207810832 iter/sec (stddev: 3.9601941564160144e-8) |
767261.3568814585 iter/sec (stddev: 7.86118308454073e-8) |
0.73 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
559878.6742906391 iter/sec (stddev: 3.6066216849908243e-7) |
452242.8293440293 iter/sec (stddev: 4.04487202774168e-7) |
0.81 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
2580624.8492294364 iter/sec (stddev: 2.198094205048723e-8) |
1705023.8057325385 iter/sec (stddev: 5.593521759980956e-8) |
0.66 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
2010112.0697840785 iter/sec (stddev: 1.1948932991554724e-7) |
1387244.61867959 iter/sec (stddev: 1.427218339492765e-7) |
0.69 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
1093800.8019065603 iter/sec (stddev: 2.650423738046131e-8) |
762986.4587083632 iter/sec (stddev: 4.902203981247507e-8) |
0.70 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
4775234.943952566 iter/sec (stddev: 5.6783765675486695e-9) |
2807898.889157946 iter/sec (stddev: 1.3550385106235307e-8) |
0.59 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
60204.08220786306 iter/sec (stddev: 0.0000017316559631781383) |
40087.41890190946 iter/sec (stddev: 0.0000035421063046108555) |
0.67 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
35173.33613426113 iter/sec (stddev: 0.000002011699152550387) |
23917.250331925698 iter/sec (stddev: 0.000005996614565270314) |
0.68 |
benchmarks/test_guard_validate.py::test_g11b_validate_shared_alias_chain |
3617.313792078185 iter/sec (stddev: 0.000010393365066343329) |
2589.186688837534 iter/sec (stddev: 0.00001643739005892647) |
0.72 |
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.
Validation follows aliases and derived sources directly when it only needs the scope owner. Alias cycles still fall back to the repeated provider, and error rendering still uses the full scope chain.
All 1,128 tests and
just lintpassed. In a paired local comparison, the shared-alias validation median moved from 186.57 to 186.38 µs. Deep and wide validation were about 1% slower in the same run.