BlogDocs

POC for hyperscan usage in UrlDispatcher(#9907)

Comparing
hyperscan
(
a87dc32
) with
master
(
e79b2d5
)
-27%
IMPROVEMENTS
3
REGRESSIONS
3
UNTOUCHED
38
NEW
0
DROPPED
0
IGNORED
0

Benchmarks

Failed

test_resolve_dynamic_resource_url_with_many_dynamic_routes[pyloop]Regression
tests/test_benchmarks_web_urldispatcher.py::test_resolve_dynamic_resource_url_with_many_dynamic_routes[pyloop]
-27%
3.7 ms
5.1 ms
test_resolve_dynamic_resource_url_with_many_static_routes[pyloop]Regression
tests/test_benchmarks_web_urldispatcher.py::test_resolve_dynamic_resource_url_with_many_static_routes[pyloop]
-25%
3.7 ms
5 ms
test_resolve_static_root_route[pyloop]Regression
tests/test_benchmarks_web_urldispatcher.py::test_resolve_static_root_route[pyloop]
-11%
1.1 ms
1.2 ms

Improved

test_resolve_gitapi[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_gitapi[pyloop]
×55
316 ms
5.8 ms
test_resolve_dynamic_resource_url_with_many_dynamic_routes_with_common_prefix[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_dynamic_resource_url_with_many_dynamic_routes_with_common_prefix[pyloop]
×53
260.6 ms
4.9 ms
test_resolve_gitapi_subapps[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_gitapi_subapps[pyloop]
×41
321 ms
7.9 ms

Passed

test_resolve_prefix_resources_many_prefix_many_plain[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_prefix_resources_many_prefix_many_plain[pyloop]
+6%
4.9 ms
4.6 ms
test_resolve_multiple_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_multiple_fixed_url_with_many_routes[pyloop]
+4%
2.3 ms
2.2 ms
test_resolve_multiple_level_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_multiple_level_fixed_url_with_many_routes[pyloop]
+4%
9 ms
8.7 ms
test_resolve_single_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_single_fixed_url_with_many_routes[pyloop]
+4%
941 µs
906 µs
test_resolve_root_route_with_many_fixed_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_root_route_with_many_fixed_routes[pyloop]
+4%
932.8 µs
900.1 µs
test_resolve_root_route[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_root_route[pyloop]
+3%
931.7 µs
906.5 µs
test_resolve_gitapi_root[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_gitapi_root[pyloop]
+3%
2.1 ms
2.1 ms
test_create_client_request_with_headers[pyloop]
tests/test_benchmarks_client_request.py::test_create_client_request_with_headers[pyloop]
+1%
73.4 µs
72.5 µs
test_read_one_hundred_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_read_one_hundred_websocket_text_messages[pyloop]
+1%
314.7 µs
312.8 µs
test_send_one_hundred_large_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_large_websocket_text_messages[pyloop]
0%
540.7 µs
538.1 µs
test_one_hundred_simple_get_requests[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_simple_get_requests[pyloop]
0%
35.4 ms
35.2 ms
test_one_hundred_simple_get_requests_multiple_methods_route[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_simple_get_requests_multiple_methods_route[pyloop]
0%
35.2 ms
35 ms
test_one_hundred_get_requests_with_1024_chunked_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_1024_chunked_payload[pyloop]
0%
39.5 ms
39.4 ms
test_one_hundred_get_requests_with_1024_content_length_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_1024_content_length_payload[pyloop]
0%
38.1 ms
38 ms
test_client_request_update_cookies[pyloop]
tests/test_benchmarks_client_request.py::test_client_request_update_cookies[pyloop]
0%
176.4 µs
175.9 µs
test_ten_web_middlewares[pyloop]
tests/test_benchmarks_web_middleware.py::test_ten_web_middlewares[pyloop]
0%
38.3 ms
38.2 ms
test_one_hundred_get_requests_with_30000_content_length_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_30000_content_length_payload[pyloop]
0%
42 ms
41.9 ms
test_one_hundred_get_requests_with_30000_chunked_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_30000_chunked_payload[pyloop]
0%
43.3 ms
43.2 ms
test_one_hundred_get_requests_with_512kib_chunked_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_512kib_chunked_payload[pyloop]
0%
170.5 ms
170.3 ms
test_one_hundred_simple_post_requests[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_simple_post_requests[pyloop]
0%
40.1 ms
40 ms
test_one_hundred_get_requests_with_512kib_content_length_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_512kib_content_length_payload[pyloop]
0%
169.1 ms
169 ms
test_one_thousand_large_round_trip_websocket_text_messages[pyloop]
tests/test_benchmarks_client_ws.py::test_one_thousand_large_round_trip_websocket_text_messages[pyloop]
0%
23.4 ms
23.4 ms
test_send_client_request_one_hundred[pyloop]
tests/test_benchmarks_client_request.py::test_send_client_request_one_hundred[pyloop]
0%
2.9 ms
2.9 ms
test_send_one_hundred_websocket_compressed_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_compressed_messages[pyloop]
0%
3.3 ms
3.3 ms
test_read_large_binary_websocket_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_read_large_binary_websocket_messages[pyloop]
0%
9.1 ms
9.1 ms
test_get_request_with_251308_compressed_chunked_payload[pyloop]
tests/test_benchmarks_client.py::test_get_request_with_251308_compressed_chunked_payload[pyloop]
0%
464.9 ms
465.1 ms
test_create_client_request_with_cookies[pyloop]
tests/test_benchmarks_client_request.py::test_create_client_request_with_cookies[pyloop]
0%
134.5 µs
134.7 µs
test_serialize_headers
tests/test_benchmarks_http_writer.py::test_serialize_headers
0%
998.3 µs
999.5 µs
test_one_thousand_round_trip_websocket_text_messages[pyloop]
tests/test_benchmarks_client_ws.py::test_one_thousand_round_trip_websocket_text_messages[pyloop]
0%
16.8 ms
16.8 ms
test_one_thousand_round_trip_websocket_binary_messages[pyloop]
tests/test_benchmarks_client_ws.py::test_one_thousand_round_trip_websocket_binary_messages[pyloop]
0%
16.4 ms
16.4 ms
test_load_cookies_into_temp_cookiejar
tests/test_benchmarks_cookiejar.py::test_load_cookies_into_temp_cookiejar
-1%
206.6 µs
207.8 µs
test_send_one_hundred_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_text_messages[pyloop]
-1%
561.2 µs
566.3 µs
test_send_one_hundred_websocket_text_messages_with_mask[pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_text_messages_with_mask[pyloop]
-1%
804.8 µs
812.8 µs
test_web_response_with_headers
tests/test_benchmarks_web_response.py::test_web_response_with_headers
-1%
1.3 ms
1.3 ms
test_web_response_with_bytes_body
tests/test_benchmarks_web_response.py::test_web_response_with_bytes_body
-1%
812.1 µs
822.1 µs
test_web_response_with_text_body
tests/test_benchmarks_web_response.py::test_web_response_with_text_body
-1%
941.7 µs
955 µs
test_simple_web_response
tests/test_benchmarks_web_response.py::test_simple_web_response
-1%
717.8 µs
728.1 µs
test_simple_web_stream_response
tests/test_benchmarks_web_response.py::test_simple_web_stream_response
-1%
471.9 µs
479 µs

Commits

Click on a commit to change the comparison range
base
master
e79b2d5
0%
[pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci
1a5a10d
8 days ago
by pre-commit-ci[bot]
0%
Reforman
bea95da
8 days ago
by asvetlov
-25%
merge
b41363b
7 days ago
by asvetlov
0%
fix
87056a2
7 days ago
by asvetlov
0%
Drop debug info
91e890a
7 days ago
by asvetlov
0%
Tune deps
e0eb966
7 days ago
by asvetlov
0%
fix
d6c019b
7 days ago
by asvetlov
0%
fix
7ce5180
7 days ago
by asvetlov
0%
fix
d8c5da1
7 days ago
by asvetlov
+11%
tune
d27eea9
7 days ago
by asvetlov
-32%
Merge branch 'master' into hyperscan
45f947f
7 days ago
by asvetlov
+6%
inline
89bac7a
7 days ago
by asvetlov
0%
Merge branch 'master' into hyperscan
505e7f4
7 days ago
by asvetlov
+7%
Use dict lookup for plain resources
4a29903
7 days ago
by asvetlov
0%
Merge branch 'master' into hyperscan
ed931e2
7 days ago
by asvetlov
+13%
Tune
e6e9e48
7 days ago
by asvetlov
-4%
address review
f56a12a
6 days ago
by asvetlov
0%
Merge branch 'master' into hyperscan
58a605e
6 days ago
by asvetlov
0%
tune
e14bad9
6 days ago
by asvetlov
-12%
Fix prefix resource lookup
00e6331
5 days ago
by asvetlov
+10%
relax deps
a8bed53
5 days ago
by asvetlov
+1%
fix
2ac1eca
5 days ago
by asvetlov
-1%
fix
a718f6e
5 days ago
by asvetlov
-1%
Merge branch 'master' into hyperscan
c82a824
5 days ago
by asvetlov
0%
Merge branch 'master' into hyperscan
e1cbdf0
4 days ago
by asvetlov
0%
Merge branch 'master' into hyperscan
a87dc32
2 days ago
by asvetlov
ResourcesHomePricingDocsBlogGitHubChangelog
Copyright © 2024 CodSpeed Technology SAS. All rights reserved.