-
Notifications
You must be signed in to change notification settings - Fork 468
feat(profiling): track asyncio.as_completed #15426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat(profiling): track asyncio.as_completed #15426
Conversation
|
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 249 ± 3 ms. The average import time from base is: 251 ± 3 ms. The import time difference between this PR and base is: -2.2 ± 0.1 ms. Import time breakdownThe following import paths have shrunk:
|
02d3cc3 to
90aa8e7
Compare
Performance SLOsComparing candidate kowalski/feat-profiling-track-asyncio-as_completed (d50380c) with baseline main (53c5793) 📈 Performance Regressions (4 suites)📈 httppropagationextract - 60/60✅ all_styles_all_headersTime: ✅ 81.462µs (SLO: <100.000µs 📉 -18.5%) vs baseline: +1.1% Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.7% ✅ b3_headersTime: ✅ 14.369µs (SLO: <20.000µs 📉 -28.2%) vs baseline: +2.3% Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.9% ✅ b3_single_headersTime: ✅ 14.579µs (SLO: <20.000µs 📉 -27.1%) vs baseline: 📈 +10.1% Memory: ✅ 34.721MB (SLO: <35.500MB -2.2%) vs baseline: +4.5% ✅ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_matchTime: ✅ 64.096µs (SLO: <80.000µs 📉 -19.9%) vs baseline: +0.7% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.0% ✅ datadog_tracecontext_tracestate_propagated_on_trace_id_matchTime: ✅ 66.409µs (SLO: <80.000µs 📉 -17.0%) vs baseline: +0.6% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.9% ✅ empty_headersTime: ✅ 1.618µs (SLO: <10.000µs 📉 -83.8%) vs baseline: +1.1% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.2% ✅ full_t_id_datadog_headersTime: ✅ 22.895µs (SLO: <30.000µs 📉 -23.7%) vs baseline: +2.1% Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.8% ✅ invalid_priority_headerTime: ✅ 6.556µs (SLO: <10.000µs 📉 -34.4%) vs baseline: +0.8% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ invalid_span_id_headerTime: ✅ 6.548µs (SLO: <10.000µs 📉 -34.5%) vs baseline: ~same Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +5.2% ✅ invalid_tags_headerTime: ✅ 6.561µs (SLO: <10.000µs 📉 -34.4%) vs baseline: +0.5% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.9% ✅ invalid_trace_id_headerTime: ✅ 6.537µs (SLO: <10.000µs 📉 -34.6%) vs baseline: +0.4% Memory: ✅ 34.937MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.5% ✅ large_header_no_matchesTime: ✅ 27.680µs (SLO: <30.000µs -7.7%) vs baseline: +0.3% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.6% ✅ large_valid_headers_allTime: ✅ 28.658µs (SLO: <40.000µs 📉 -28.4%) vs baseline: -0.2% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.6% ✅ medium_header_no_matchesTime: ✅ 9.853µs (SLO: <20.000µs 📉 -50.7%) vs baseline: ~same Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +5.0% ✅ medium_valid_headers_allTime: ✅ 11.309µs (SLO: <20.000µs 📉 -43.5%) vs baseline: -0.1% Memory: ✅ 34.741MB (SLO: <35.500MB -2.1%) vs baseline: +4.6% ✅ none_propagation_styleTime: ✅ 1.712µs (SLO: <10.000µs 📉 -82.9%) vs baseline: +0.1% Memory: ✅ 34.741MB (SLO: <35.500MB -2.1%) vs baseline: +4.7% ✅ tracecontext_headersTime: ✅ 34.854µs (SLO: <40.000µs 📉 -12.9%) vs baseline: +0.3% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ valid_headers_allTime: ✅ 6.532µs (SLO: <10.000µs 📉 -34.7%) vs baseline: +0.3% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.9% ✅ valid_headers_basicTime: ✅ 6.095µs (SLO: <10.000µs 📉 -39.1%) vs baseline: ~same Memory: ✅ 34.701MB (SLO: <35.500MB -2.2%) vs baseline: +4.1% ✅ wsgi_empty_headersTime: ✅ 1.601µs (SLO: <10.000µs 📉 -84.0%) vs baseline: +0.2% Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.7% ✅ wsgi_invalid_priority_headerTime: ✅ 6.626µs (SLO: <10.000µs 📉 -33.7%) vs baseline: +0.6% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.6% ✅ wsgi_invalid_span_id_headerTime: ✅ 1.611µs (SLO: <10.000µs 📉 -83.9%) vs baseline: +0.9% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.2% ✅ wsgi_invalid_tags_headerTime: ✅ 6.634µs (SLO: <10.000µs 📉 -33.7%) vs baseline: +1.1% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ wsgi_invalid_trace_id_headerTime: ✅ 6.657µs (SLO: <10.000µs 📉 -33.4%) vs baseline: +0.9% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.0% ✅ wsgi_large_header_no_matchesTime: ✅ 29.146µs (SLO: <40.000µs 📉 -27.1%) vs baseline: +1.2% Memory: ✅ 34.878MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +5.1% ✅ wsgi_large_valid_headers_allTime: ✅ 30.133µs (SLO: <40.000µs 📉 -24.7%) vs baseline: +0.7% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +5.0% ✅ wsgi_medium_header_no_matchesTime: ✅ 10.139µs (SLO: <20.000µs 📉 -49.3%) vs baseline: ~same Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ wsgi_medium_valid_headers_allTime: ✅ 11.575µs (SLO: <20.000µs 📉 -42.1%) vs baseline: +0.4% Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +5.0% ✅ wsgi_valid_headers_allTime: ✅ 6.621µs (SLO: <10.000µs 📉 -33.8%) vs baseline: +1.2% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.1% ✅ wsgi_valid_headers_basicTime: ✅ 6.156µs (SLO: <10.000µs 📉 -38.4%) vs baseline: +0.7% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.5% 📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.408µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +1.4% Memory: ✅ 40.279MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ add_inplace_aspectTime: ✅ 0.401µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -1.2% Memory: ✅ 40.226MB (SLO: <41.500MB -3.1%) vs baseline: +4.7% ✅ add_inplace_noaspectTime: ✅ 0.318µs (SLO: <10.000µs 📉 -96.8%) vs baseline: +1.1% Memory: ✅ 40.159MB (SLO: <41.500MB -3.2%) vs baseline: +4.6% ✅ add_noaspectTime: ✅ 0.278µs (SLO: <10.000µs 📉 -97.2%) vs baseline: +1.4% Memory: ✅ 40.154MB (SLO: <41.500MB -3.2%) vs baseline: +4.6% ✅ bytearray_aspectTime: ✅ 1.359µs (SLO: <10.000µs 📉 -86.4%) vs baseline: +0.2% Memory: ✅ 40.190MB (SLO: <41.500MB -3.2%) vs baseline: +4.7% ✅ bytearray_extend_aspectTime: ✅ 1.512µs (SLO: <10.000µs 📉 -84.9%) vs baseline: -0.3% Memory: ✅ 40.143MB (SLO: <41.500MB -3.3%) vs baseline: +4.4% ✅ bytearray_extend_noaspectTime: ✅ 0.609µs (SLO: <10.000µs 📉 -93.9%) vs baseline: -0.2% Memory: ✅ 40.369MB (SLO: <41.500MB -2.7%) vs baseline: +5.0% ✅ bytearray_noaspectTime: ✅ 0.479µs (SLO: <10.000µs 📉 -95.2%) vs baseline: -0.7% Memory: ✅ 40.131MB (SLO: <41.500MB -3.3%) vs baseline: +4.6% ✅ bytes_aspectTime: ✅ 1.298µs (SLO: <10.000µs 📉 -87.0%) vs baseline: +1.0% Memory: ✅ 40.371MB (SLO: <41.500MB -2.7%) vs baseline: +4.9% ✅ bytes_noaspectTime: ✅ 0.492µs (SLO: <10.000µs 📉 -95.1%) vs baseline: ~same Memory: ✅ 40.206MB (SLO: <41.500MB -3.1%) vs baseline: +5.0% ✅ bytesio_aspectTime: ✅ 1.367µs (SLO: <10.000µs 📉 -86.3%) vs baseline: +2.4% Memory: ✅ 40.049MB (SLO: <41.500MB -3.5%) vs baseline: +4.1% ✅ bytesio_noaspectTime: ✅ 0.498µs (SLO: <10.000µs 📉 -95.0%) vs baseline: +0.5% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +4.7% ✅ capitalize_aspectTime: ✅ 0.735µs (SLO: <10.000µs 📉 -92.7%) vs baseline: -1.1% Memory: ✅ 40.234MB (SLO: <41.500MB -3.1%) vs baseline: +4.6% ✅ capitalize_noaspectTime: ✅ 0.434µs (SLO: <10.000µs 📉 -95.7%) vs baseline: -0.7% Memory: ✅ 40.035MB (SLO: <41.500MB -3.5%) vs baseline: +4.1% ✅ casefold_aspectTime: ✅ 0.736µs (SLO: <10.000µs 📉 -92.6%) vs baseline: ~same Memory: ✅ 40.072MB (SLO: <41.500MB -3.4%) vs baseline: +4.4% ✅ casefold_noaspectTime: ✅ 0.370µs (SLO: <10.000µs 📉 -96.3%) vs baseline: +0.9% Memory: ✅ 40.226MB (SLO: <41.500MB -3.1%) vs baseline: +4.6% ✅ decode_aspectTime: ✅ 0.723µs (SLO: <10.000µs 📉 -92.8%) vs baseline: ~same Memory: ✅ 40.239MB (SLO: <41.500MB -3.0%) vs baseline: +5.0% ✅ decode_noaspectTime: ✅ 0.421µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +1.2% Memory: ✅ 40.069MB (SLO: <41.500MB -3.4%) vs baseline: +4.5% ✅ encode_aspectTime: ✅ 0.716µs (SLO: <10.000µs 📉 -92.8%) vs baseline: +0.7% Memory: ✅ 40.155MB (SLO: <41.500MB -3.2%) vs baseline: +4.7% ✅ encode_noaspectTime: ✅ 0.402µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -0.3% Memory: ✅ 40.128MB (SLO: <41.500MB -3.3%) vs baseline: +4.7% ✅ format_aspectTime: ✅ 3.445µs (SLO: <10.000µs 📉 -65.6%) vs baseline: ~same Memory: ✅ 40.197MB (SLO: <41.500MB -3.1%) vs baseline: +4.3% ✅ format_map_aspectTime: ✅ 3.561µs (SLO: <10.000µs 📉 -64.4%) vs baseline: -0.7% Memory: ✅ 40.129MB (SLO: <41.500MB -3.3%) vs baseline: +4.6% ✅ format_map_noaspectTime: ✅ 0.777µs (SLO: <10.000µs 📉 -92.2%) vs baseline: +0.4% Memory: ✅ 40.155MB (SLO: <41.500MB -3.2%) vs baseline: +4.7% ✅ format_noaspectTime: ✅ 0.595µs (SLO: <10.000µs 📉 -94.1%) vs baseline: -0.5% Memory: ✅ 40.206MB (SLO: <41.500MB -3.1%) vs baseline: +5.0% ✅ index_aspectTime: ✅ 0.360µs (SLO: <10.000µs 📉 -96.4%) vs baseline: +0.5% Memory: ✅ 40.074MB (SLO: <41.500MB -3.4%) vs baseline: +4.4% ✅ index_noaspectTime: ✅ 0.280µs (SLO: <10.000µs 📉 -97.2%) vs baseline: -0.5% Memory: ✅ 40.246MB (SLO: <41.500MB -3.0%) vs baseline: +4.7% ✅ join_aspectTime: ✅ 1.350µs (SLO: <10.000µs 📉 -86.5%) vs baseline: +1.6% Memory: ✅ 40.121MB (SLO: <41.500MB -3.3%) vs baseline: +4.7% ✅ join_noaspectTime: ✅ 0.498µs (SLO: <10.000µs 📉 -95.0%) vs baseline: +0.8% Memory: ✅ 40.134MB (SLO: <41.500MB -3.3%) vs baseline: +4.9% ✅ ljust_aspectTime: ✅ 2.612µs (SLO: <20.000µs 📉 -86.9%) vs baseline: +2.2% Memory: ✅ 40.291MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ ljust_noaspectTime: ✅ 0.399µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -1.3% Memory: ✅ 40.206MB (SLO: <41.500MB -3.1%) vs baseline: +4.8% ✅ lower_aspectTime: ✅ 2.293µs (SLO: <10.000µs 📉 -77.1%) vs baseline: +0.3% Memory: ✅ 40.149MB (SLO: <41.500MB -3.3%) vs baseline: +4.9% ✅ lower_noaspectTime: ✅ 0.369µs (SLO: <10.000µs 📉 -96.3%) vs baseline: ~same Memory: ✅ 40.108MB (SLO: <41.500MB -3.4%) vs baseline: +4.6% ✅ lstrip_aspectTime: ✅ 2.281µs (SLO: <20.000µs 📉 -88.6%) vs baseline: +2.3% Memory: ✅ 40.110MB (SLO: <41.500MB -3.4%) vs baseline: +4.8% ✅ lstrip_noaspectTime: ✅ 0.382µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -0.5% Memory: ✅ 40.246MB (SLO: <41.500MB -3.0%) vs baseline: +4.9% ✅ modulo_aspectTime: ✅ 1.044µs (SLO: <10.000µs 📉 -89.6%) vs baseline: +5.3% Memory: ✅ 40.215MB (SLO: <41.500MB -3.1%) vs baseline: +4.9% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.565µs (SLO: <10.000µs 📉 -84.4%) vs baseline: -0.2% Memory: ✅ 40.136MB (SLO: <41.500MB -3.3%) vs baseline: +4.9% ✅ modulo_aspect_for_bytesTime: ✅ 0.979µs (SLO: <10.000µs 📉 -90.2%) vs baseline: -0.1% Memory: ✅ 40.117MB (SLO: <41.500MB -3.3%) vs baseline: +4.5% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.237µs (SLO: <10.000µs 📉 -87.6%) vs baseline: +0.1% Memory: ✅ 40.270MB (SLO: <41.500MB -3.0%) vs baseline: +5.3% ✅ modulo_noaspectTime: ✅ 0.627µs (SLO: <10.000µs 📉 -93.7%) vs baseline: +0.3% Memory: ✅ 40.284MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ replace_aspectTime: ✅ 4.907µs (SLO: <10.000µs 📉 -50.9%) vs baseline: -0.4% Memory: ✅ 40.228MB (SLO: <41.500MB -3.1%) vs baseline: +4.7% ✅ replace_noaspectTime: ✅ 0.465µs (SLO: <10.000µs 📉 -95.3%) vs baseline: +1.0% Memory: ✅ 40.167MB (SLO: <41.500MB -3.2%) vs baseline: +4.9% ✅ repr_aspectTime: ✅ 0.906µs (SLO: <10.000µs 📉 -90.9%) vs baseline: +0.3% Memory: ✅ 40.018MB (SLO: <41.500MB -3.6%) vs baseline: +3.9% ✅ repr_noaspectTime: ✅ 0.414µs (SLO: <10.000µs 📉 -95.9%) vs baseline: -1.0% Memory: ✅ 40.112MB (SLO: <41.500MB -3.3%) vs baseline: +4.4% ✅ rstrip_aspectTime: ✅ 2.126µs (SLO: <20.000µs 📉 -89.4%) vs baseline: 📈 +10.1% Memory: ✅ 40.146MB (SLO: <41.500MB -3.3%) vs baseline: +4.6% ✅ rstrip_noaspectTime: ✅ 0.383µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -0.6% Memory: ✅ 40.128MB (SLO: <41.500MB -3.3%) vs baseline: +4.6% ✅ slice_aspectTime: ✅ 0.493µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.6% Memory: ✅ 40.137MB (SLO: <41.500MB -3.3%) vs baseline: +4.8% ✅ slice_noaspectTime: ✅ 0.448µs (SLO: <10.000µs 📉 -95.5%) vs baseline: -0.2% Memory: ✅ 40.126MB (SLO: <41.500MB -3.3%) vs baseline: +4.5% ✅ stringio_aspectTime: ✅ 1.550µs (SLO: <10.000µs 📉 -84.5%) vs baseline: -0.2% Memory: ✅ 40.281MB (SLO: <41.500MB -2.9%) vs baseline: +4.9% ✅ stringio_noaspectTime: ✅ 0.720µs (SLO: <10.000µs 📉 -92.8%) vs baseline: +0.6% Memory: ✅ 40.303MB (SLO: <41.500MB -2.9%) vs baseline: +5.1% ✅ strip_aspectTime: ✅ 2.245µs (SLO: <20.000µs 📉 -88.8%) vs baseline: +0.7% Memory: ✅ 40.311MB (SLO: <41.500MB -2.9%) vs baseline: +5.1% ✅ strip_noaspectTime: ✅ 0.385µs (SLO: <10.000µs 📉 -96.1%) vs baseline: ~same Memory: ✅ 40.265MB (SLO: <41.500MB -3.0%) vs baseline: +4.8% ✅ swapcase_aspectTime: ✅ 2.515µs (SLO: <10.000µs 📉 -74.9%) vs baseline: +2.4% Memory: ✅ 40.253MB (SLO: <41.500MB -3.0%) vs baseline: +4.9% ✅ swapcase_noaspectTime: ✅ 0.538µs (SLO: <10.000µs 📉 -94.6%) vs baseline: -0.8% Memory: ✅ 40.126MB (SLO: <41.500MB -3.3%) vs baseline: +4.8% ✅ title_aspectTime: ✅ 2.457µs (SLO: <10.000µs 📉 -75.4%) vs baseline: +3.0% Memory: ✅ 40.247MB (SLO: <41.500MB -3.0%) vs baseline: +4.9% ✅ title_noaspectTime: ✅ 0.501µs (SLO: <10.000µs 📉 -95.0%) vs baseline: ~same Memory: ✅ 40.147MB (SLO: <41.500MB -3.3%) vs baseline: +4.4% ✅ translate_aspectTime: ✅ 3.604µs (SLO: <10.000µs 📉 -64.0%) vs baseline: +8.6% Memory: ✅ 40.168MB (SLO: <41.500MB -3.2%) vs baseline: +4.8% ✅ translate_noaspectTime: ✅ 1.042µs (SLO: <10.000µs 📉 -89.6%) vs baseline: +0.7% Memory: ✅ 40.283MB (SLO: <41.500MB -2.9%) vs baseline: +4.7% ✅ upper_aspectTime: ✅ 2.310µs (SLO: <10.000µs 📉 -76.9%) vs baseline: +3.1% Memory: ✅ 40.148MB (SLO: <41.500MB -3.3%) vs baseline: +4.8% ✅ upper_noaspectTime: ✅ 0.370µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.6% Memory: ✅ 40.185MB (SLO: <41.500MB -3.2%) vs baseline: +4.6% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 5.209µs (SLO: <10.000µs 📉 -47.9%) vs baseline: 📈 +26.4% Memory: ✅ 40.305MB (SLO: <41.000MB 🟡 -1.7%) vs baseline: +5.1% ✅ ospathbasename_noaspectTime: ✅ 1.080µs (SLO: <10.000µs 📉 -89.2%) vs baseline: ~same Memory: ✅ 40.265MB (SLO: <41.000MB 🟡 -1.8%) vs baseline: +4.9% ✅ ospathjoin_aspectTime: ✅ 6.156µs (SLO: <10.000µs 📉 -38.4%) vs baseline: +0.5% Memory: ✅ 40.344MB (SLO: <41.000MB 🟡 -1.6%) vs baseline: +5.3% ✅ ospathjoin_noaspectTime: ✅ 2.296µs (SLO: <10.000µs 📉 -77.0%) vs baseline: +0.3% Memory: ✅ 40.344MB (SLO: <41.000MB 🟡 -1.6%) vs baseline: +5.1% ✅ ospathnormcase_aspectTime: ✅ 3.419µs (SLO: <10.000µs 📉 -65.8%) vs baseline: -0.4% Memory: ✅ 40.344MB (SLO: <41.000MB 🟡 -1.6%) vs baseline: +5.3% ✅ ospathnormcase_noaspectTime: ✅ 0.570µs (SLO: <10.000µs 📉 -94.3%) vs baseline: +0.1% Memory: ✅ 40.226MB (SLO: <41.000MB 🟡 -1.9%) vs baseline: +5.2% ✅ ospathsplit_aspectTime: ✅ 4.757µs (SLO: <10.000µs 📉 -52.4%) vs baseline: +0.9% Memory: ✅ 40.167MB (SLO: <41.000MB -2.0%) vs baseline: +4.7% ✅ ospathsplit_noaspectTime: ✅ 1.585µs (SLO: <10.000µs 📉 -84.1%) vs baseline: ~same Memory: ✅ 40.265MB (SLO: <41.000MB 🟡 -1.8%) vs baseline: +5.0% ✅ ospathsplitdrive_aspectTime: ✅ 3.652µs (SLO: <10.000µs 📉 -63.5%) vs baseline: ~same Memory: ✅ 40.187MB (SLO: <41.000MB 🟡 -2.0%) vs baseline: +4.7% ✅ ospathsplitdrive_noaspectTime: ✅ 0.701µs (SLO: <10.000µs 📉 -93.0%) vs baseline: -0.4% Memory: ✅ 40.206MB (SLO: <41.000MB 🟡 -1.9%) vs baseline: +5.2% ✅ ospathsplitext_aspectTime: ✅ 4.495µs (SLO: <10.000µs 📉 -55.1%) vs baseline: -0.7% Memory: ✅ 40.383MB (SLO: <41.000MB 🟡 -1.5%) vs baseline: +4.9% ✅ ospathsplitext_noaspectTime: ✅ 1.370µs (SLO: <10.000µs 📉 -86.3%) vs baseline: -1.0% Memory: ✅ 40.187MB (SLO: <41.000MB 🟡 -2.0%) vs baseline: +4.7% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.408µs (SLO: <20.000µs 📉 -83.0%) vs baseline: 📈 +15.4% Memory: ✅ 34.741MB (SLO: <35.500MB -2.1%) vs baseline: +4.5% ✅ 1-count-metrics-100-timesTime: ✅ 202.008µs (SLO: <220.000µs -8.2%) vs baseline: -0.5% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.9% ✅ 1-distribution-metric-1-timesTime: ✅ 3.300µs (SLO: <20.000µs 📉 -83.5%) vs baseline: +0.4% Memory: ✅ 34.701MB (SLO: <35.500MB -2.2%) vs baseline: +4.6% ✅ 1-distribution-metrics-100-timesTime: ✅ 218.019µs (SLO: <230.000µs -5.2%) vs baseline: +0.1% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.5% ✅ 1-gauge-metric-1-timesTime: ✅ 2.158µs (SLO: <20.000µs 📉 -89.2%) vs baseline: -1.3% Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.7% ✅ 1-gauge-metrics-100-timesTime: ✅ 137.040µs (SLO: <150.000µs -8.6%) vs baseline: -0.4% Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +5.1% ✅ 1-rate-metric-1-timesTime: ✅ 3.083µs (SLO: <20.000µs 📉 -84.6%) vs baseline: -0.5% Memory: ✅ 34.977MB (SLO: <35.500MB 🟡 -1.5%) vs baseline: +5.7% ✅ 1-rate-metrics-100-timesTime: ✅ 215.391µs (SLO: <250.000µs 📉 -13.8%) vs baseline: ~same Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.8% ✅ 100-count-metrics-100-timesTime: ✅ 20.613ms (SLO: <22.000ms -6.3%) vs baseline: +1.5% Memory: ✅ 34.701MB (SLO: <35.500MB -2.2%) vs baseline: +4.8% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.296ms (SLO: <2.300ms 🟡 -0.2%) vs baseline: ~same Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.1% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.415ms (SLO: <1.550ms -8.7%) vs baseline: +0.8% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.6% ✅ 100-rate-metrics-100-timesTime: ✅ 2.255ms (SLO: <2.550ms 📉 -11.6%) vs baseline: +2.0% Memory: ✅ 34.721MB (SLO: <35.500MB -2.2%) vs baseline: +4.7% ✅ flush-1-metricTime: ✅ 4.552µs (SLO: <20.000µs 📉 -77.2%) vs baseline: -0.9% Memory: ✅ 35.055MB (SLO: <35.500MB 🟡 -1.3%) vs baseline: +4.7% ✅ flush-100-metricsTime: ✅ 175.109µs (SLO: <250.000µs 📉 -30.0%) vs baseline: -0.8% Memory: ✅ 35.134MB (SLO: <35.500MB 🟡 -1.0%) vs baseline: +4.9% ✅ flush-1000-metricsTime: ✅ 2.180ms (SLO: <2.500ms 📉 -12.8%) vs baseline: +0.1% Memory: ✅ 35.920MB (SLO: <36.500MB 🟡 -1.6%) vs baseline: +4.6% 🟡 Near SLO Breach (13 suites)🟡 coreapiscenario - 10/10 (1 unstable)
|
114a723 to
842f244
Compare
|
|
||
| @partial(wrap, sys.modules["asyncio"].tasks.as_completed) | ||
| def _(f, args, kwargs): | ||
| loop = typing.cast(typing.Optional["asyncio.AbstractEventLoop"], kwargs.get("loop")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation says loop is removed since 3.10. How does this work even if that's the case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good question... I'll look into this tomorrow – I do believe we properly track this (and test that we track it) so it's rather surprising 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just investigated that and the answer is somewhat surprising. We use loop mainly to get the current running Task, with asyncio.current_task.
This function actually does
def current_task(loop=None):
"""Return a currently executed task."""
if loop is None:
loop = events.get_running_loop()
return _current_tasks.get(loop)... which means it works just as well if we don't pass loop/pass loop=None. When we do the kwargs.get, we get None as the value and it works as expected.
The documentation says loop is removed since 3.10.
This isn't a problem: if the user passes a loop argument to our function, we forward it to the real implementation, which is free to refuse it/raise if it wants to. Before calling into the real implementation, we may have used the loop argument ourselves (with the kwargs.get) but I think that's fine given that the real implementation will catch it if it's a problem.
What do you think? Alternatively, I can either
- add post-3.10 code to make sure we don't accept a
loopparameter, but my problem with this is that it's not easy to reproduce what the real function would do (like, we don't know whether it will raise, or just ignore it, etc.) - never rely on the
loopargument at all and trust whatcurrent_task(loop=None)will give us
842f244 to
e337514
Compare
e337514 to
d50380c
Compare
Description
https://datadoghq.atlassian.net/browse/PROF-13129
This adds support for
asyncio.as_completedin ddtrace.Run awaitable objects in the
awsiterable concurrently. The returned object can be iterated to obtain the results of the awaitables as they finish.