Repository navigation
docs: say the starlette and fastapi child close is shielded and bounded - #729
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: fd01cc4 | Previous: 62a9c1f | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
2926638.394356274 iter/sec (stddev: 3.5698684986235096e-8) |
3368376.8027967717 iter/sec (stddev: 2.016835038375244e-8) |
1.15 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
3206157.9778610673 iter/sec (stddev: 2.6249258916479893e-8) |
3271237.824613772 iter/sec (stddev: 1.1936429091839201e-8) |
1.02 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
15046.250453708526 iter/sec (stddev: 0.00005743837143706049) |
15491.227683741372 iter/sec (stddev: 0.00005964622598807101) |
1.03 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
12565.154716777151 iter/sec (stddev: 0.00012560311376876788) |
12323.113513152462 iter/sec (stddev: 0.00018884046798550843) |
0.98 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
481.42269620852846 iter/sec (stddev: 0.00003444426475260231) |
475.9567803810449 iter/sec (stddev: 0.000046398265144671544) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
449.6144635168531 iter/sec (stddev: 0.000052411100684991225) |
456.0537608255945 iter/sec (stddev: 0.0002096614511246607) |
1.01 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
429.9144797387092 iter/sec (stddev: 0.00015586454030227438) |
436.91932732555404 iter/sec (stddev: 0.00009993383056880878) |
1.02 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
13020.471653552348 iter/sec (stddev: 0.000007738476597871104) |
13064.224817851204 iter/sec (stddev: 0.000010803410730228787) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
6697.195086363781 iter/sec (stddev: 0.000027130174359463323) |
5992.281940848677 iter/sec (stddev: 0.00001623774235719754) |
0.89 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
3169.990921672526 iter/sec (stddev: 0.00021165575224024844) |
3143.9193534397587 iter/sec (stddev: 0.00007856464304719835) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
10078.399026154475 iter/sec (stddev: 0.000008760369889252729) |
9361.573455837937 iter/sec (stddev: 0.000010514915473408809) |
0.93 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
4219.1400232378555 iter/sec (stddev: 0.000018011930155011862) |
3815.236247689667 iter/sec (stddev: 0.00002929007971713621) |
0.90 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
1975.9658335749928 iter/sec (stddev: 0.00007980848083903456) |
1889.5321556153644 iter/sec (stddev: 0.000041109108030026855) |
0.96 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
40268.28070876824 iter/sec (stddev: 0.0000051534091413483835) |
33571.673564032026 iter/sec (stddev: 0.000004813400646461457) |
0.83 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
14433.567281427693 iter/sec (stddev: 0.000018579594039247744) |
13932.48757707931 iter/sec (stddev: 0.000015090474312096087) |
0.97 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
5842.29257012816 iter/sec (stddev: 0.00003256611852351019) |
5978.7494319719235 iter/sec (stddev: 0.00003490747179089923) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1547856.1920869565 iter/sec (stddev: 3.423018721586968e-8) |
1133606.717702516 iter/sec (stddev: 1.719555230101188e-7) |
0.73 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
1706776.191626273 iter/sec (stddev: 1.8172412217096508e-8) |
1645544.5933914874 iter/sec (stddev: 2.3665409865310352e-8) |
0.96 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
3142.873457332952 iter/sec (stddev: 0.000041420748446382134) |
3121.537986603407 iter/sec (stddev: 0.000040552970893337285) |
0.99 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
57740.75319547023 iter/sec (stddev: 0.0000018260337403328568) |
54136.84169394392 iter/sec (stddev: 0.0000020251935213467162) |
0.94 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
407714.3884060316 iter/sec (stddev: 3.3912518656027116e-7) |
422445.8847882337 iter/sec (stddev: 9.309614806719311e-8) |
1.04 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
64641.106153073626 iter/sec (stddev: 0.0000015511899393311858) |
64897.48079337249 iter/sec (stddev: 0.000001687781564099515) |
1.00 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
567.0863240060489 iter/sec (stddev: 0.001140903589495204) |
560.4984528391024 iter/sec (stddev: 0.0015564606092484297) |
0.99 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
2169049.6569244433 iter/sec (stddev: 3.395517552868711e-8) |
2162146.851810498 iter/sec (stddev: 3.124161737881505e-8) |
1.00 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
3635242.131120152 iter/sec (stddev: 1.1203298061415355e-8) |
3488926.0614522216 iter/sec (stddev: 2.083445445916843e-8) |
0.96 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
781809.2379202034 iter/sec (stddev: 3.7627067847728164e-8) |
802308.8362289348 iter/sec (stddev: 5.802748791865847e-8) |
1.03 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
481206.5735121898 iter/sec (stddev: 3.7275630736660344e-7) |
481126.4208750084 iter/sec (stddev: 4.38101295019777e-7) |
1.00 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
1998644.8188771142 iter/sec (stddev: 2.8856461548339992e-8) |
1958277.6223858262 iter/sec (stddev: 2.6512773927117607e-8) |
0.98 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
1415006.3188858011 iter/sec (stddev: 1.3917320324721138e-7) |
1473355.0552514 iter/sec (stddev: 1.7054662097746741e-7) |
1.04 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
824932.4957731023 iter/sec (stddev: 3.402401419094997e-8) |
827826.7676477522 iter/sec (stddev: 6.51372220084119e-8) |
1.00 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
3412570.024235736 iter/sec (stddev: 2.9698915243531713e-8) |
3571103.4734757957 iter/sec (stddev: 1.156164309515365e-8) |
1.05 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
35140.130700518304 iter/sec (stddev: 0.000019373675239786004) |
35326.36022395037 iter/sec (stddev: 0.000019837803870371134) |
1.01 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
20704.56760152282 iter/sec (stddev: 0.000025325632200963667) |
21117.06203213061 iter/sec (stddev: 0.000025219091318994467) |
1.02 |
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.
Documents modern-di-starlette 4.3.3 (modern-python/modern-di-starlette#67) and modern-di-fastapi 4.2.2 (modern-python/modern-di-fastapi#80). Each page's "Scopes and lifecycle" section now says the child close is shielded from cancellation, so a request cancelled by an anyio scope still runs its finalizers, and that a close running longer than 10 seconds is abandoned with a warning on the integration's logger.