Repository navigation
Separate registration preparation from commit - #746
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: 95ec88e | Previous: 47762d1 | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
5825032.904164495 iter/sec (stddev: 1.0763495641994477e-8) |
3017561.9692543675 iter/sec (stddev: 1.750319466644966e-8) |
0.52 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
5359793.849479946 iter/sec (stddev: 1.1674323418188886e-8) |
3193551.886603387 iter/sec (stddev: 2.816087175539433e-8) |
0.60 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
18237.48348068363 iter/sec (stddev: 0.00004362140552935393) |
14685.468761845292 iter/sec (stddev: 0.00005447456309794489) |
0.81 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
15310.221049957443 iter/sec (stddev: 0.00013323334589192978) |
11807.067806308032 iter/sec (stddev: 0.00016190215301945785) |
0.77 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
765.6987454762252 iter/sec (stddev: 0.000058209351915129055) |
459.2152858961316 iter/sec (stddev: 0.00008432361073532243) |
0.60 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
737.9618231397557 iter/sec (stddev: 0.000045902655539775554) |
428.3810853203458 iter/sec (stddev: 0.00011030493355702745) |
0.58 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
676.2048175363456 iter/sec (stddev: 0.00005889287999234795) |
404.85451319140213 iter/sec (stddev: 0.0001003837692155433) |
0.60 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
16008.004001691881 iter/sec (stddev: 0.000013181341944233934) |
14059.854440692932 iter/sec (stddev: 0.000009759135893930133) |
0.88 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
6746.615560389769 iter/sec (stddev: 0.000026414351538136303) |
7741.972944994737 iter/sec (stddev: 0.000014542968235790703) |
1.15 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
3425.899814007806 iter/sec (stddev: 0.000049063673689224836) |
3718.820018401797 iter/sec (stddev: 0.00004808484645685743) |
1.09 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
12210.095449549122 iter/sec (stddev: 0.000012687467846737394) |
10442.726345250036 iter/sec (stddev: 0.000012397618336169868) |
0.86 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
4504.683406691154 iter/sec (stddev: 0.000029978018926461404) |
4456.64210882066 iter/sec (stddev: 0.000023491495239898745) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
2242.902028134264 iter/sec (stddev: 0.00005246173280129431) |
2170.236379974916 iter/sec (stddev: 0.00004376616590484128) |
0.97 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
29213.968951397124 iter/sec (stddev: 0.000007225570323983183) |
41030.10173493843 iter/sec (stddev: 0.000004375533860465989) |
1.40 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
11540.898443358667 iter/sec (stddev: 0.000027964741921468287) |
15725.275248093889 iter/sec (stddev: 0.000017288493603316113) |
1.36 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
5349.412478480942 iter/sec (stddev: 0.000037611790644797865) |
6733.351913674104 iter/sec (stddev: 0.00002906578871767762) |
1.26 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
2189823.060131403 iter/sec (stddev: 3.221457329443893e-8) |
1486358.001891102 iter/sec (stddev: 3.698056178855252e-8) |
0.68 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
2395369.3677489064 iter/sec (stddev: 2.5251094370875294e-8) |
1531964.5944609235 iter/sec (stddev: 3.858888349715363e-8) |
0.64 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
4238.838012276708 iter/sec (stddev: 0.0000078714744160598) |
3306.8672892475743 iter/sec (stddev: 0.000011730090384025869) |
0.78 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
79829.51401355462 iter/sec (stddev: 0.000001169835327682081) |
58476.00058587414 iter/sec (stddev: 0.0000018725093761337473) |
0.73 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
579449.6445191719 iter/sec (stddev: 8.164698250121284e-8) |
419891.3799795667 iter/sec (stddev: 8.592527924840865e-8) |
0.72 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
87805.38697507023 iter/sec (stddev: 0.0000011148727438882223) |
61720.01562354498 iter/sec (stddev: 0.000001826630671262546) |
0.70 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
756.1572492101694 iter/sec (stddev: 0.0009954953499316439) |
569.684231050814 iter/sec (stddev: 0.001124787253764957) |
0.75 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
3089840.0343281855 iter/sec (stddev: 2.2179311371678282e-8) |
1912181.4419242034 iter/sec (stddev: 2.7450713267576054e-8) |
0.62 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
5567170.838938043 iter/sec (stddev: 2.041792185377921e-8) |
3382520.022740473 iter/sec (stddev: 2.992209972638476e-8) |
0.61 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
1141065.9952612892 iter/sec (stddev: 4.3208908148430246e-8) |
769657.7812872208 iter/sec (stddev: 6.801784431946685e-8) |
0.67 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
638983.9235471998 iter/sec (stddev: 3.304058828327882e-7) |
445999.0385142321 iter/sec (stddev: 3.5406267222085763e-7) |
0.70 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
2764670.1693217927 iter/sec (stddev: 2.4951764687585233e-8) |
1728990.5815814778 iter/sec (stddev: 2.8517136450511702e-8) |
0.63 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
2074355.6947361873 iter/sec (stddev: 1.1000105317995128e-7) |
1328038.2676845235 iter/sec (stddev: 1.1910436088659929e-7) |
0.64 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
1167545.867633534 iter/sec (stddev: 5.4670579085453675e-8) |
761668.45608028 iter/sec (stddev: 5.2302930671084444e-8) |
0.65 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
5639605.09677439 iter/sec (stddev: 1.1321169623216522e-8) |
3110833.749172728 iter/sec (stddev: 3.5064059361052834e-8) |
0.55 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
48936.33132036656 iter/sec (stddev: 0.0000019980959940739257) |
40655.41020444628 iter/sec (stddev: 0.0000032667671806641557) |
0.83 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
30832.42585772745 iter/sec (stddev: 0.0000025469652930272814) |
24545.011574980257 iter/sec (stddev: 0.000003816456833149239) |
0.80 |
benchmarks/test_guard_validate.py::test_g11b_validate_shared_alias_chain |
3199.5350725746307 iter/sec (stddev: 0.000014150051518969756) |
2601.3754698218127 iter/sec (stddev: 0.00003560513428487841) |
0.81 |
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.
Prepare bindings and check for duplicates within the batch before taking the registry lock. Under the lock, check for conflicts with existing bindings before applying the batch. Reuse the provider identity map for inline scope discovery and registration.
Each number is the median of 24 batch averages. Baseline and candidate ran in pairs with alternating order and a fresh registry for each timed registration.
A targeted check on both versions confirmed that a duplicate within the batch takes precedence over a conflict with an existing binding. Both rejection paths preserved registry state, cached plans and resolvers, provider registration flags, and inline scope.
just lint-cipassed.just test-cipassed all 1,128 tests with 100% coverage.