Repository navigation
docs: flask streaming fixed in 4.2.1, aiogram webhook handlers outlive shutdown - #706
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: 454d5c7 | Previous: bad4b78 | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
7258562.254500046 iter/sec (stddev: 3.999637969011707e-9) |
4655833.999779081 iter/sec (stddev: 2.0522916658434266e-8) |
0.64 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
7160144.288337026 iter/sec (stddev: 3.41483771833456e-9) |
4729434.491615421 iter/sec (stddev: 1.5152850492063106e-8) |
0.66 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
33029.768010275046 iter/sec (stddev: 0.00003098843990322074) |
16415.764933413917 iter/sec (stddev: 0.00004867301595760562) |
0.50 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
25133.574866019342 iter/sec (stddev: 0.00015406862814101857) |
13038.49375378845 iter/sec (stddev: 0.00017282338738803163) |
0.52 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
881.5558515686115 iter/sec (stddev: 0.000016948026959544526) |
659.9456402776316 iter/sec (stddev: 0.00010592063373061927) |
0.75 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
869.1733188834868 iter/sec (stddev: 0.000025646800761151497) |
631.0332696516252 iter/sec (stddev: 0.00011196568877121262) |
0.73 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
831.5597436524391 iter/sec (stddev: 0.00005284251205526122) |
527.2844751740037 iter/sec (stddev: 0.00024373174890653687) |
0.63 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
26538.415351588534 iter/sec (stddev: 0.000005532978326350514) |
14063.815735920527 iter/sec (stddev: 0.000019709012664240425) |
0.53 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
13624.81815122833 iter/sec (stddev: 0.00001021225375174225) |
6514.07624020921 iter/sec (stddev: 0.00006819663745626085) |
0.48 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
6371.496135084524 iter/sec (stddev: 0.000022540618070163576) |
3030.044634831725 iter/sec (stddev: 0.0000557857773579942) |
0.48 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
20110.362316688177 iter/sec (stddev: 0.00000795776631872084) |
10808.74351689256 iter/sec (stddev: 0.00001790967247862914) |
0.54 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
9034.296221107543 iter/sec (stddev: 0.00001346701871044059) |
4465.455238276922 iter/sec (stddev: 0.00002991992006558915) |
0.49 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
4073.096882827254 iter/sec (stddev: 0.00002412321635640929) |
1975.3169984598499 iter/sec (stddev: 0.00010956956673435356) |
0.48 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
61268.72206530615 iter/sec (stddev: 0.0000016236526776311556) |
28735.411989203487 iter/sec (stddev: 0.000006253212151546188) |
0.47 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
31363.26713209353 iter/sec (stddev: 0.000007931656334850088) |
12011.356737760394 iter/sec (stddev: 0.00002213289642044622) |
0.38 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
11129.021622686736 iter/sec (stddev: 0.000021001996552943903) |
5192.280532691687 iter/sec (stddev: 0.00004202572590613645) |
0.47 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
3214781.5656798887 iter/sec (stddev: 2.8268399239655042e-8) |
1939117.6210103396 iter/sec (stddev: 4.3880254210464766e-8) |
0.60 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
3660143.589240038 iter/sec (stddev: 2.0100473240682152e-8) |
2059541.4461818135 iter/sec (stddev: 3.763011231226181e-8) |
0.56 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
6925.219994826237 iter/sec (stddev: 0.000006201797190900996) |
3556.045960115424 iter/sec (stddev: 0.000015769179447815806) |
0.51 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
119270.05938428284 iter/sec (stddev: 6.690552087924843e-7) |
69679.29796168108 iter/sec (stddev: 0.0000016572410257642559) |
0.58 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
873174.8843928473 iter/sec (stddev: 5.370835861118086e-8) |
483347.6231031244 iter/sec (stddev: 1.0329178942398692e-7) |
0.55 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
138299.11449456762 iter/sec (stddev: 5.703209657184361e-7) |
71678.82627715808 iter/sec (stddev: 0.0000023872870299886334) |
0.52 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
1159.8766483057132 iter/sec (stddev: 0.0011419874880904835) |
655.9862055955971 iter/sec (stddev: 0.001185514772428553) |
0.57 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
4252324.87890771 iter/sec (stddev: 2.4715029833507948e-8) |
2743227.5883090626 iter/sec (stddev: 4.1562994382759774e-8) |
0.65 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
7129352.621181168 iter/sec (stddev: 4.432661058619096e-9) |
4989570.799117044 iter/sec (stddev: 1.4984059241497235e-8) |
0.70 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
1665991.5235975934 iter/sec (stddev: 2.682123967373419e-8) |
1028382.0857997941 iter/sec (stddev: 4.930441000767768e-8) |
0.62 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
936705.147138435 iter/sec (stddev: 2.996654483206654e-7) |
583876.8253463465 iter/sec (stddev: 4.339946449917493e-7) |
0.62 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
3857906.736465091 iter/sec (stddev: 1.661580755263171e-8) |
2465842.988807039 iter/sec (stddev: 2.675157957461447e-8) |
0.64 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
2954156.5130098206 iter/sec (stddev: 1.1733965466737224e-7) |
1874362.3360754587 iter/sec (stddev: 1.5712217934075258e-7) |
0.63 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
1620230.850503796 iter/sec (stddev: 4.8594481743541975e-8) |
1040860.9210487395 iter/sec (stddev: 3.969415509147296e-8) |
0.64 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
7003906.639112506 iter/sec (stddev: 3.459242562814447e-9) |
4807059.76335339 iter/sec (stddev: 1.632127877391684e-8) |
0.69 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
74718.90374762278 iter/sec (stddev: 0.0000110287480763638) |
31331.273322979614 iter/sec (stddev: 0.00026011745582605407) |
0.42 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
44318.53253875348 iter/sec (stddev: 0.000014069681911230015) |
22175.687609496596 iter/sec (stddev: 0.00002277676312929597) |
0.50 |
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.
stream_with_contextwarning. Since modern-di-flask 4.2.1, a streamed response keeps the request container open until the response closes (stream_with_context generators can't resolve REQUEST dependencies on Flask 3.1.2+ modern-di-flask#43).direct_passthroughresponses and requests that raise still close at teardown.aiogram.webhook.aiohttp_server, inline and in the background, next to polling. The plugin'stest_webhook_waits_for_in_flight_updatecovers both modes and failed before fix: wait for in-flight updates before closing the root container modern-di-aiogram#52.