aio-libs
aiohttp
BlogDocsChangelog

Fix WebSocket compressed sends to be cancellation safe

#11726Merged
Comparing
websocket_send_cancel_safe_large_payloads
(
7d6154e
) with
master
(
0d77d0d
)
CodSpeed Performance Gauge
0%
Untouched
59
Ignored
7

Benchmarks

Passed

test_send_one_hundred_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
+4%
2.1 ms2 ms
test_send_one_hundred_websocket_compressed_messages[zlib-pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
+3%
3.1 ms3 ms
test_send_one_hundred_websocket_compressed_messages[isal.isal_zlib-pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
+2%
4.7 ms4.6 ms
test_get_request_with_251308_compressed_chunked_payload[isal.isal_zlib-pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
+2%
65.5 ms64.5 ms
test_resolve_dynamic_resource_url_with_many_dynamic_routes_with_common_prefix[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
+1%
249.5 ms247.3 ms
test_resolve_gitapi[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
+1%
295.4 ms293 ms
test_resolve_single_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
+1%
910.8 µs904.1 µs
test_simple_web_stream_response
tests/test_benchmarks_web_response.py
CodSpeed Performance Gauge
0%
242.3 µs241.1 µs
test_resolve_root_route[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
904.5 µs900.4 µs
test_resolve_multiple_level_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
8.8 ms8.7 ms
test_resolve_prefix_resources_many_prefix_many_plain[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
4.7 ms4.7 ms
test_resolve_static_root_route[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
1 ms1 ms
test_simple_web_file_response[pyloop]
tests/test_benchmarks_web_fileresponse.py
CodSpeed Performance Gauge
0%
78.9 ms78.8 ms
test_one_hundred_simple_get_requests_no_session[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
87.7 ms87.5 ms
test_resolve_gitapi_subapps[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
295.5 ms295 ms
test_load_cookies_into_temp_cookiejar
tests/test_benchmarks_cookiejar.py
CodSpeed Performance Gauge
0%
189.9 µs189.6 µs
test_resolve_gitapi_root[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
2.1 ms2.1 ms
test_resolve_dynamic_resource_url_with_many_dynamic_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
3.6 ms3.6 ms
test_resolve_multiple_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
test_web_response_with_headers
tests/test_benchmarks_web_response.py
CodSpeed Performance Gauge
0%
693.7 µs693.6 µs
test_ten_streamed_responses_iter_chunked_4096[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
28.1 ms28.1 ms
test_resolve_root_route_with_many_fixed_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
903.3 µs903.3 µs
test_read_large_binary_websocket_messages[pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
0%
8.9 ms8.9 ms
test_get_request_with_251308_compressed_chunked_payload[zlib_ng.zlib_ng-pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
210 ms210.1 ms
test_get_request_with_251308_compressed_chunked_payload[zlib-pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
426.1 ms426.2 ms
test_send_client_request_one_hundred[pyloop]
tests/test_benchmarks_client_request.py
CodSpeed Performance Gauge
0%
2.6 ms2.6 ms
test_one_hundred_get_requests_with_512kib_content_length_payload[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
165.7 ms165.8 ms
test_serialize_headers
tests/test_benchmarks_http_writer.py
CodSpeed Performance Gauge
0%
851.7 µs852.2 µs
test_simple_web_file_response_not_modified[pyloop]
tests/test_benchmarks_web_fileresponse.py
CodSpeed Performance Gauge
0%
55.3 ms55.3 ms
test_simple_web_response
tests/test_benchmarks_web_response.py
CodSpeed Performance Gauge
0%
447.8 µs448.2 µs
test_create_client_request_with_headers[pyloop]
tests/test_benchmarks_client_request.py
CodSpeed Performance Gauge
0%
70.5 µs70.5 µs
test_one_thousand_round_trip_websocket_binary_messages[pyloop-large]
tests/test_benchmarks_client_ws.py
CodSpeed Performance Gauge
0%
110.4 ms110.5 ms
test_ten_web_middlewares[pyloop]
tests/test_benchmarks_web_middleware.py
CodSpeed Performance Gauge
0%
35.6 ms35.6 ms
test_one_hundred_json_post_requests[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
38.7 ms38.7 ms
test_one_hundred_simple_post_requests[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
36.8 ms36.9 ms
test_one_hundred_get_requests_with_1024_chunked_payload[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
35.5 ms35.5 ms
test_one_hundred_simple_get_requests_multiple_methods_route[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
32.7 ms32.7 ms
test_ten_streamed_responses_iter_chunked_65536[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
23 ms23.1 ms
test_one_thousand_large_round_trip_websocket_text_messages[pyloop]
tests/test_benchmarks_client_ws.py
CodSpeed Performance Gauge
0%
21.5 ms21.6 ms
test_one_hundred_get_requests_with_30000_content_length_payload[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
40.4 ms40.5 ms
test_one_hundred_get_requests_with_30000_chunked_payload[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
40.6 ms40.7 ms
test_one_hundred_simple_get_requests[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
32.9 ms33 ms
test_one_hundred_simple_get_requests_alternating_clients[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
33.5 ms33.7 ms
test_read_one_hundred_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
0%
208.8 µs209.5 µs
test_ten_streamed_responses_iter_chunks[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
16.2 ms16.2 ms
test_resolve_dynamic_resource_url_with_many_static_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py
CodSpeed Performance Gauge
0%
3.6 ms3.6 ms
test_one_hundred_get_requests_with_1024_content_length_payload[pyloop]
tests/test_benchmarks_client.py
CodSpeed Performance Gauge
0%
35.1 ms35.3 ms
test_client_request_update_cookies[pyloop]
tests/test_benchmarks_client_request.py
CodSpeed Performance Gauge
-1%
146.5 µs147.6 µs
test_web_response_with_bytes_body
tests/test_benchmarks_web_response.py
CodSpeed Performance Gauge
-1%
539.5 µs543.4 µs
test_web_response_with_text_body
tests/test_benchmarks_web_response.py
CodSpeed Performance Gauge
-1%
682.8 µs687.9 µs
test_simple_web_file_sendfile_fallback_response[pyloop]
tests/test_benchmarks_web_fileresponse.py
CodSpeed Performance Gauge
-1%
84.6 ms85.3 ms
test_client_send_large_websocket_compressed_messages[zlib-pyloop]
tests/test_benchmarks_client_ws.py
CodSpeed Performance Gauge
-1%
50.3 ms50.7 ms
test_create_client_request_with_cookies[pyloop]
tests/test_benchmarks_client_request.py
CodSpeed Performance Gauge
-1%
120.5 µs121.5 µs
test_client_receive_large_websocket_compressed_messages[zlib-pyloop]
tests/test_benchmarks_client_ws.py
CodSpeed Performance Gauge
-1%
50.2 ms50.6 ms
test_one_thousand_round_trip_websocket_binary_messages[pyloop-small]
tests/test_benchmarks_client_ws.py
CodSpeed Performance Gauge
-2%
16.4 ms16.7 ms
test_one_thousand_round_trip_websocket_text_messages[pyloop]
tests/test_benchmarks_client_ws.py
CodSpeed Performance Gauge
-2%
16.7 ms17.1 ms
test_send_one_hundred_websocket_text_messages_with_mask[pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
-4%
790.2 µs827.1 µs
test_send_one_hundred_large_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
-6%
545.6 µs581.5 µs
test_send_one_hundred_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py
CodSpeed Performance Gauge
-7%
549.9 µs592.7 µs

Ignored

test_client_send_large_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]
tests/test_benchmarks_client_ws.py
Ignored
CodSpeed Performance Gauge
-1%
29.7 ms30.2 ms
test_client_receive_large_websocket_compressed_messages[isal.isal_zlib-pyloop]
tests/test_benchmarks_client_ws.py
Ignored
CodSpeed Performance Gauge
-2%
19.8 ms20.2 ms
test_one_hundred_get_requests_iter_chunks_on_512kib_chunked_payload[pyloop]
tests/test_benchmarks_client.py
Ignored
CodSpeed Performance Gauge
0%
97.1 ms97.2 ms
test_one_hundred_get_requests_with_512kib_chunked_payload[pyloop]
tests/test_benchmarks_client.py
Ignored
CodSpeed Performance Gauge
0%
166.2 ms166.4 ms
test_client_send_large_websocket_compressed_messages[isal.isal_zlib-pyloop]
tests/test_benchmarks_client_ws.py
Ignored
CodSpeed Performance Gauge
-8%
18.6 ms20.2 ms
test_client_receive_large_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]
tests/test_benchmarks_client_ws.py
Ignored
CodSpeed Performance Gauge
-1%
29.7 ms30.2 ms
test_ten_streamed_responses_iter_any[pyloop]
tests/test_benchmarks_client.py
Ignored
CodSpeed Performance Gauge
-9%
21.7 ms24 ms

Commits

Click on a commit to change the comparison range
Base
master
0d77d0d
-19.81%
lint
a98d709
2 months ago
by bdraco
+19.46%
document
6de4509
2 months ago
by bdraco
+0.16%
document
34bd39b
2 months ago
by bdraco
+0.04%
Merge branch 'master' into websocket_send_cancel_safe_large_payloads
262e45d
2 months ago
by bdraco
-0.15%
Merge remote-tracking branch 'upstream/websocket_send_cancel_safe_large_payloads' into websocket_send_cancel_safe_large_payloads
65fbccf
2 months ago
by bdraco
+0.21%
cleanup
b4c5670
2 months ago
by bdraco
-0.25%
address comments from code review
c31b7db
2 months ago
by bdraco
+0.03%
spelling words
7d6154e
2 months ago
by bdraco
© 2025 CodSpeed Technology
Home Terms Privacy Docs