-
Notifications
You must be signed in to change notification settings - Fork 469
chore(profiling): improve typing in _asyncio.py #15506
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
chore(profiling): improve typing in _asyncio.py #15506
Conversation
|
|
4245b86 to
00f488f
Compare
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 242 ± 3 ms. The average import time from base is: 248 ± 5 ms. The import time difference between this PR and base is: -5.3 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate kowalski/chore-profiling-improve-typing-in-_asyncio-py (b496b13) with baseline main (a5d1649) 📈 Performance Regressions (3 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.399µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -1.3% Memory: ✅ 40.226MB (SLO: <41.500MB -3.1%) vs baseline: +4.6% ✅ add_inplace_aspectTime: ✅ 0.408µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +0.1% Memory: ✅ 40.285MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ add_inplace_noaspectTime: ✅ 0.317µs (SLO: <10.000µs 📉 -96.8%) vs baseline: -0.5% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +4.8% ✅ add_noaspectTime: ✅ 0.281µs (SLO: <10.000µs 📉 -97.2%) vs baseline: +2.0% Memory: ✅ 40.246MB (SLO: <41.500MB -3.0%) vs baseline: +5.0% ✅ bytearray_aspectTime: ✅ 1.347µs (SLO: <10.000µs 📉 -86.5%) vs baseline: -0.6% Memory: ✅ 40.285MB (SLO: <41.500MB -2.9%) vs baseline: +4.9% ✅ bytearray_extend_aspectTime: ✅ 1.497µs (SLO: <10.000µs 📉 -85.0%) vs baseline: -1.3% Memory: ✅ 39.970MB (SLO: <41.500MB -3.7%) vs baseline: +3.8% ✅ bytearray_extend_noaspectTime: ✅ 0.612µs (SLO: <10.000µs 📉 -93.9%) vs baseline: ~same Memory: ✅ 40.128MB (SLO: <41.500MB -3.3%) vs baseline: +4.2% ✅ bytearray_noaspectTime: ✅ 0.480µs (SLO: <10.000µs 📉 -95.2%) vs baseline: +0.2% Memory: ✅ 40.246MB (SLO: <41.500MB -3.0%) vs baseline: +5.2% ✅ bytes_aspectTime: ✅ 1.299µs (SLO: <10.000µs 📉 -87.0%) vs baseline: +1.0% Memory: ✅ 40.088MB (SLO: <41.500MB -3.4%) vs baseline: +4.3% ✅ bytes_noaspectTime: ✅ 0.490µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.6% Memory: ✅ 40.206MB (SLO: <41.500MB -3.1%) vs baseline: +4.7% ✅ bytesio_aspectTime: ✅ 1.333µs (SLO: <10.000µs 📉 -86.7%) vs baseline: +1.4% Memory: ✅ 40.147MB (SLO: <41.500MB -3.3%) vs baseline: +4.4% ✅ bytesio_noaspectTime: ✅ 0.500µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -1.4% Memory: ✅ 40.305MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ capitalize_aspectTime: ✅ 0.743µs (SLO: <10.000µs 📉 -92.6%) vs baseline: +0.6% Memory: ✅ 40.285MB (SLO: <41.500MB -2.9%) vs baseline: +4.8% ✅ capitalize_noaspectTime: ✅ 0.434µs (SLO: <10.000µs 📉 -95.7%) vs baseline: -0.3% Memory: ✅ 40.265MB (SLO: <41.500MB -3.0%) vs baseline: +4.8% ✅ casefold_aspectTime: ✅ 0.732µs (SLO: <10.000µs 📉 -92.7%) vs baseline: -0.7% Memory: ✅ 40.108MB (SLO: <41.500MB -3.4%) vs baseline: +4.5% ✅ casefold_noaspectTime: ✅ 0.367µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.5% Memory: ✅ 40.147MB (SLO: <41.500MB -3.3%) vs baseline: +4.7% ✅ decode_aspectTime: ✅ 0.730µs (SLO: <10.000µs 📉 -92.7%) vs baseline: +1.2% Memory: ✅ 40.265MB (SLO: <41.500MB -3.0%) vs baseline: +5.0% ✅ decode_noaspectTime: ✅ 0.421µs (SLO: <10.000µs 📉 -95.8%) vs baseline: -0.6% Memory: ✅ 40.265MB (SLO: <41.500MB -3.0%) vs baseline: +5.1% ✅ encode_aspectTime: ✅ 0.713µs (SLO: <10.000µs 📉 -92.9%) vs baseline: -0.4% Memory: ✅ 40.167MB (SLO: <41.500MB -3.2%) vs baseline: +4.6% ✅ encode_noaspectTime: ✅ 0.401µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -1.5% Memory: ✅ 40.285MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ format_aspectTime: ✅ 3.416µs (SLO: <10.000µs 📉 -65.8%) vs baseline: -1.3% Memory: ✅ 40.147MB (SLO: <41.500MB -3.3%) vs baseline: +4.8% ✅ format_map_aspectTime: ✅ 3.539µs (SLO: <10.000µs 📉 -64.6%) vs baseline: -1.8% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +4.7% ✅ format_map_noaspectTime: ✅ 0.781µs (SLO: <10.000µs 📉 -92.2%) vs baseline: +0.6% Memory: ✅ 40.246MB (SLO: <41.500MB -3.0%) vs baseline: +4.7% ✅ format_noaspectTime: ✅ 0.597µs (SLO: <10.000µs 📉 -94.0%) vs baseline: +0.2% Memory: ✅ 40.226MB (SLO: <41.500MB -3.1%) vs baseline: +4.8% ✅ index_aspectTime: ✅ 0.354µs (SLO: <10.000µs 📉 -96.5%) vs baseline: -1.1% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +4.3% ✅ index_noaspectTime: ✅ 0.280µs (SLO: <10.000µs 📉 -97.2%) vs baseline: -0.6% Memory: ✅ 40.108MB (SLO: <41.500MB -3.4%) vs baseline: +4.9% ✅ join_aspectTime: ✅ 1.330µs (SLO: <10.000µs 📉 -86.7%) vs baseline: ~same Memory: ✅ 40.324MB (SLO: <41.500MB -2.8%) vs baseline: +5.1% ✅ join_noaspectTime: ✅ 0.490µs (SLO: <10.000µs 📉 -95.1%) vs baseline: +0.7% Memory: ✅ 40.226MB (SLO: <41.500MB -3.1%) vs baseline: +5.0% ✅ ljust_aspectTime: ✅ 2.629µs (SLO: <20.000µs 📉 -86.9%) vs baseline: +3.0% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +4.6% ✅ ljust_noaspectTime: ✅ 0.408µs (SLO: <10.000µs 📉 -95.9%) vs baseline: +1.6% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +4.8% ✅ lower_aspectTime: ✅ 2.300µs (SLO: <10.000µs 📉 -77.0%) vs baseline: +2.3% Memory: ✅ 40.324MB (SLO: <41.500MB -2.8%) vs baseline: +5.1% ✅ lower_noaspectTime: ✅ 0.366µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.6% Memory: ✅ 40.147MB (SLO: <41.500MB -3.3%) vs baseline: +4.6% ✅ lstrip_aspectTime: ✅ 2.254µs (SLO: <20.000µs 📉 -88.7%) vs baseline: +0.6% Memory: ✅ 40.088MB (SLO: <41.500MB -3.4%) vs baseline: +4.4% ✅ lstrip_noaspectTime: ✅ 0.382µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -1.6% Memory: ✅ 40.206MB (SLO: <41.500MB -3.1%) vs baseline: +4.8% ✅ modulo_aspectTime: ✅ 1.040µs (SLO: <10.000µs 📉 -89.6%) vs baseline: +4.2% Memory: ✅ 40.167MB (SLO: <41.500MB -3.2%) vs baseline: +4.0% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.545µs (SLO: <10.000µs 📉 -84.5%) vs baseline: -0.3% Memory: ✅ 40.226MB (SLO: <41.500MB -3.1%) vs baseline: +5.0% ✅ modulo_aspect_for_bytesTime: ✅ 0.973µs (SLO: <10.000µs 📉 -90.3%) vs baseline: ~same Memory: ✅ 40.167MB (SLO: <41.500MB -3.2%) vs baseline: +4.2% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.233µs (SLO: <10.000µs 📉 -87.7%) vs baseline: +1.1% Memory: ✅ 40.049MB (SLO: <41.500MB -3.5%) vs baseline: +4.2% ✅ modulo_noaspectTime: ✅ 0.631µs (SLO: <10.000µs 📉 -93.7%) vs baseline: +0.2% Memory: ✅ 40.226MB (SLO: <41.500MB -3.1%) vs baseline: +4.7% ✅ replace_aspectTime: ✅ 4.853µs (SLO: <10.000µs 📉 -51.5%) vs baseline: -1.7% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +5.0% ✅ replace_noaspectTime: ✅ 0.464µs (SLO: <10.000µs 📉 -95.4%) vs baseline: +0.7% Memory: ✅ 40.344MB (SLO: <41.500MB -2.8%) vs baseline: +5.1% ✅ repr_aspectTime: ✅ 0.907µs (SLO: <10.000µs 📉 -90.9%) vs baseline: +0.2% Memory: ✅ 40.049MB (SLO: <41.500MB -3.5%) vs baseline: +4.0% ✅ repr_noaspectTime: ✅ 0.416µs (SLO: <10.000µs 📉 -95.8%) vs baseline: -1.7% Memory: ✅ 40.167MB (SLO: <41.500MB -3.2%) vs baseline: +4.7% ✅ rstrip_aspectTime: ✅ 1.947µs (SLO: <20.000µs 📉 -90.3%) vs baseline: +1.4% Memory: ✅ 40.265MB (SLO: <41.500MB -3.0%) vs baseline: +5.2% ✅ rstrip_noaspectTime: ✅ 0.383µs (SLO: <10.000µs 📉 -96.2%) vs baseline: +0.7% Memory: ✅ 40.305MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ slice_aspectTime: ✅ 0.492µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -1.5% Memory: ✅ 40.187MB (SLO: <41.500MB -3.2%) vs baseline: +4.6% ✅ slice_noaspectTime: ✅ 0.443µs (SLO: <10.000µs 📉 -95.6%) vs baseline: -1.8% Memory: ✅ 40.128MB (SLO: <41.500MB -3.3%) vs baseline: +4.2% ✅ stringio_aspectTime: ✅ 1.539µs (SLO: <10.000µs 📉 -84.6%) vs baseline: +1.1% Memory: ✅ 40.108MB (SLO: <41.500MB -3.4%) vs baseline: +4.6% ✅ stringio_noaspectTime: ✅ 0.715µs (SLO: <10.000µs 📉 -92.9%) vs baseline: -0.8% Memory: ✅ 40.128MB (SLO: <41.500MB -3.3%) vs baseline: +4.6% ✅ strip_aspectTime: ✅ 2.241µs (SLO: <20.000µs 📉 -88.8%) vs baseline: +0.2% Memory: ✅ 40.383MB (SLO: <41.500MB -2.7%) vs baseline: +5.2% ✅ strip_noaspectTime: ✅ 0.383µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -1.0% Memory: ✅ 40.285MB (SLO: <41.500MB -2.9%) vs baseline: +4.9% ✅ swapcase_aspectTime: ✅ 2.777µs (SLO: <10.000µs 📉 -72.2%) vs baseline: 📈 +14.7% Memory: ✅ 40.285MB (SLO: <41.500MB -2.9%) vs baseline: +4.9% ✅ swapcase_noaspectTime: ✅ 0.535µs (SLO: <10.000µs 📉 -94.7%) vs baseline: +0.2% Memory: ✅ 40.265MB (SLO: <41.500MB -3.0%) vs baseline: +4.9% ✅ title_aspectTime: ✅ 2.437µs (SLO: <10.000µs 📉 -75.6%) vs baseline: +2.9% Memory: ✅ 40.010MB (SLO: <41.500MB -3.6%) vs baseline: +4.2% ✅ title_noaspectTime: ✅ 0.506µs (SLO: <10.000µs 📉 -94.9%) vs baseline: +0.1% Memory: ✅ 40.246MB (SLO: <41.500MB -3.0%) vs baseline: +4.9% ✅ translate_aspectTime: ✅ 3.280µs (SLO: <10.000µs 📉 -67.2%) vs baseline: -0.5% Memory: ✅ 40.285MB (SLO: <41.500MB -2.9%) vs baseline: +5.0% ✅ translate_noaspectTime: ✅ 1.038µs (SLO: <10.000µs 📉 -89.6%) vs baseline: -0.4% Memory: ✅ 40.167MB (SLO: <41.500MB -3.2%) vs baseline: +4.9% ✅ upper_aspectTime: ✅ 2.314µs (SLO: <10.000µs 📉 -76.9%) vs baseline: +1.8% Memory: ✅ 40.128MB (SLO: <41.500MB -3.3%) vs baseline: +4.7% ✅ upper_noaspectTime: ✅ 0.370µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.2% Memory: ✅ 40.246MB (SLO: <41.500MB -3.0%) vs baseline: +4.9% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 5.185µs (SLO: <10.000µs 📉 -48.2%) vs baseline: 📈 +25.8% Memory: ✅ 40.246MB (SLO: <41.000MB 🟡 -1.8%) vs baseline: +4.8% ✅ ospathbasename_noaspectTime: ✅ 1.086µs (SLO: <10.000µs 📉 -89.1%) vs baseline: +0.8% Memory: ✅ 40.265MB (SLO: <41.000MB 🟡 -1.8%) vs baseline: +4.7% ✅ ospathjoin_aspectTime: ✅ 6.174µs (SLO: <10.000µs 📉 -38.3%) vs baseline: +0.4% Memory: ✅ 40.344MB (SLO: <41.000MB 🟡 -1.6%) vs baseline: +5.1% ✅ ospathjoin_noaspectTime: ✅ 2.294µs (SLO: <10.000µs 📉 -77.1%) vs baseline: ~same Memory: ✅ 40.364MB (SLO: <41.000MB 🟡 -1.6%) vs baseline: +5.2% ✅ ospathnormcase_aspectTime: ✅ 3.448µs (SLO: <10.000µs 📉 -65.5%) vs baseline: +0.6% Memory: ✅ 40.167MB (SLO: <41.000MB -2.0%) vs baseline: +4.8% ✅ ospathnormcase_noaspectTime: ✅ 0.576µs (SLO: <10.000µs 📉 -94.2%) vs baseline: +0.6% Memory: ✅ 40.364MB (SLO: <41.000MB 🟡 -1.6%) vs baseline: +5.2% ✅ ospathsplit_aspectTime: ✅ 4.721µs (SLO: <10.000µs 📉 -52.8%) vs baseline: -1.5% Memory: ✅ 40.206MB (SLO: <41.000MB 🟡 -1.9%) vs baseline: +4.3% ✅ ospathsplit_noaspectTime: ✅ 1.596µs (SLO: <10.000µs 📉 -84.0%) vs baseline: ~same Memory: ✅ 40.147MB (SLO: <41.000MB -2.1%) vs baseline: +4.6% ✅ ospathsplitdrive_aspectTime: ✅ 3.643µs (SLO: <10.000µs 📉 -63.6%) vs baseline: -0.3% Memory: ✅ 40.088MB (SLO: <41.000MB -2.2%) vs baseline: +4.5% ✅ ospathsplitdrive_noaspectTime: ✅ 0.710µs (SLO: <10.000µs 📉 -92.9%) vs baseline: +1.3% Memory: ✅ 40.226MB (SLO: <41.000MB 🟡 -1.9%) vs baseline: +5.1% ✅ ospathsplitext_aspectTime: ✅ 4.504µs (SLO: <10.000µs 📉 -55.0%) vs baseline: -1.4% Memory: ✅ 40.206MB (SLO: <41.000MB 🟡 -1.9%) vs baseline: +4.7% ✅ ospathsplitext_noaspectTime: ✅ 1.386µs (SLO: <10.000µs 📉 -86.1%) vs baseline: +0.5% Memory: ✅ 40.226MB (SLO: <41.000MB 🟡 -1.9%) vs baseline: +4.9% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.409µs (SLO: <20.000µs 📉 -83.0%) vs baseline: 📈 +16.6% Memory: ✅ 35.134MB (SLO: <35.500MB 🟡 -1.0%) vs baseline: +5.1% ✅ 1-count-metrics-100-timesTime: ✅ 201.889µs (SLO: <220.000µs -8.2%) vs baseline: -2.3% Memory: ✅ 35.095MB (SLO: <35.500MB 🟡 -1.1%) vs baseline: +4.9% ✅ 1-distribution-metric-1-timesTime: ✅ 3.297µs (SLO: <20.000µs 📉 -83.5%) vs baseline: -1.1% Memory: ✅ 35.095MB (SLO: <35.500MB 🟡 -1.1%) vs baseline: +4.9% ✅ 1-distribution-metrics-100-timesTime: ✅ 217.723µs (SLO: <230.000µs -5.3%) vs baseline: +0.2% Memory: ✅ 35.134MB (SLO: <35.500MB 🟡 -1.0%) vs baseline: +5.1% ✅ 1-gauge-metric-1-timesTime: ✅ 2.160µs (SLO: <20.000µs 📉 -89.2%) vs baseline: -1.1% Memory: ✅ 35.075MB (SLO: <35.500MB 🟡 -1.2%) vs baseline: +5.0% ✅ 1-gauge-metrics-100-timesTime: ✅ 135.862µs (SLO: <150.000µs -9.4%) vs baseline: -0.7% Memory: ✅ 35.095MB (SLO: <35.500MB 🟡 -1.1%) vs baseline: +4.9% ✅ 1-rate-metric-1-timesTime: ✅ 3.078µs (SLO: <20.000µs 📉 -84.6%) vs baseline: -0.3% Memory: ✅ 35.154MB (SLO: <35.500MB 🟡 -1.0%) vs baseline: +5.0% ✅ 1-rate-metrics-100-timesTime: ✅ 218.015µs (SLO: <250.000µs 📉 -12.8%) vs baseline: -0.2% Memory: ✅ 35.114MB (SLO: <35.500MB 🟡 -1.1%) vs baseline: +5.0% ✅ 100-count-metrics-100-timesTime: ✅ 20.294ms (SLO: <22.000ms -7.8%) vs baseline: +0.3% Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.5% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.263ms (SLO: <2.300ms 🟡 -1.6%) vs baseline: +0.1% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +3.8% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.406ms (SLO: <1.550ms -9.3%) vs baseline: -0.1% Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +5.3% ✅ 100-rate-metrics-100-timesTime: ✅ 2.224ms (SLO: <2.550ms 📉 -12.8%) vs baseline: +0.2% Memory: ✅ 34.721MB (SLO: <35.500MB -2.2%) vs baseline: +4.6% ✅ flush-1-metricTime: ✅ 4.607µs (SLO: <20.000µs 📉 -77.0%) vs baseline: ~same Memory: ✅ 35.036MB (SLO: <35.500MB 🟡 -1.3%) vs baseline: +4.7% ✅ flush-100-metricsTime: ✅ 174.960µs (SLO: <250.000µs 📉 -30.0%) vs baseline: +0.1% Memory: ✅ 35.173MB (SLO: <35.500MB 🟡 -0.9%) vs baseline: +4.9% ✅ flush-1000-metricsTime: ✅ 2.169ms (SLO: <2.500ms 📉 -13.3%) vs baseline: -0.5% Memory: ✅ 35.920MB (SLO: <36.500MB 🟡 -1.6%) vs baseline: +4.8% 🟡 Near SLO Breach (16 suites)🟡 coreapiscenario - 10/10 (1 unstable)
|
00f488f to
b496b13
Compare
Description
https://datadoghq.atlassian.net/browse/PROF-13197
This improves typing for the
_asyncio.pymodule. Note that the result is somewhat verbose, which I'm not a fan of, but honestly I'm not quite sure how to make things much better.Two ideas I had for
typing:import typing as tto make lines shorter...from typing import Any, Callable, ...to get rid of the qualification altogetherFor
asyncio:import asyncio as aiofor type checking, which isn't great since we also import it asasyncio(but can't use theasyncioname in the import wrapper...)from asyncio import Task, ...for type checking. I think this could be OK.