-
Notifications
You must be signed in to change notification settings - Fork 467
chore(profiling): improve typing #15024
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
Conversation
|
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 243 ± 4 ms. The average import time from base is: 253 ± 6 ms. The import time difference between this PR and base is: -10.1 ± 0.2 ms. Import time breakdownThe following import paths have grown:
|
6f245b5 to
756931f
Compare
Performance SLOsComparing candidate kowalski/chore-profiling-improve-typing (80c0310) with baseline main (5fa0681) 📈 Performance Regressions (1 suite)📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.007µs (SLO: <20.000µs 📉 -85.0%) vs baseline: +2.7% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.7% ✅ 1-count-metrics-100-timesTime: ✅ 201.912µs (SLO: <220.000µs -8.2%) vs baseline: -1.6% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ 1-distribution-metric-1-timesTime: ✅ 3.298µs (SLO: <20.000µs 📉 -83.5%) vs baseline: +0.6% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.2% ✅ 1-distribution-metrics-100-timesTime: ✅ 213.967µs (SLO: <220.000µs -2.7%) vs baseline: -1.3% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ 1-gauge-metric-1-timesTime: ✅ 2.456µs (SLO: <20.000µs 📉 -87.7%) vs baseline: 📈 +12.7% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-gauge-metrics-100-timesTime: ✅ 136.643µs (SLO: <150.000µs -8.9%) vs baseline: +0.3% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.9% ✅ 1-rate-metric-1-timesTime: ✅ 3.114µs (SLO: <20.000µs 📉 -84.4%) vs baseline: +1.1% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ 1-rate-metrics-100-timesTime: ✅ 214.209µs (SLO: <250.000µs 📉 -14.3%) vs baseline: -1.2% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.9% ✅ 100-count-metrics-100-timesTime: ✅ 20.349ms (SLO: <22.000ms -7.5%) vs baseline: -0.3% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.3% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.229ms (SLO: <2.300ms -3.1%) vs baseline: -2.2% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.412ms (SLO: <1.550ms -8.9%) vs baseline: +0.4% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.4% ✅ 100-rate-metrics-100-timesTime: ✅ 2.214ms (SLO: <2.550ms 📉 -13.2%) vs baseline: +0.6% Memory: ✅ 32.224MB (SLO: <34.000MB -5.2%) vs baseline: +5.3% ✅ flush-1-metricTime: ✅ 4.663µs (SLO: <20.000µs 📉 -76.7%) vs baseline: +5.2% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.2% ✅ flush-100-metricsTime: ✅ 176.195µs (SLO: <250.000µs 📉 -29.5%) vs baseline: +1.2% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ flush-1000-metricsTime: ✅ 2.124ms (SLO: <2.500ms 📉 -15.0%) vs baseline: +0.3% Memory: ✅ 33.030MB (SLO: <34.500MB -4.3%) vs baseline: +5.1% 🟡 Near SLO Breach (3 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.521ms (SLO: <22.300ms -8.0%) vs baseline: +0.2% Memory: ✅ 65.169MB (SLO: <67.000MB -2.7%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.346ms (SLO: <1.450ms -7.2%) vs baseline: +0.1% Memory: ✅ 64.646MB (SLO: <67.000MB -3.5%) vs baseline: +5.0% ✅ iastTime: ✅ 20.552ms (SLO: <22.250ms -7.6%) vs baseline: +0.6% Memory: ✅ 65.279MB (SLO: <67.000MB -2.6%) vs baseline: +5.0% ✅ profilerTime: ✅ 15.467ms (SLO: <16.550ms -6.5%) vs baseline: +1.5% Memory: ✅ 54.022MB (SLO: <54.500MB 🟡 -0.9%) vs baseline: +5.3% ✅ resource-renamingTime: ✅ 20.608ms (SLO: <21.750ms -5.2%) vs baseline: +0.7% Memory: ✅ 65.272MB (SLO: <67.000MB -2.6%) vs baseline: +5.0% ✅ span-code-originTime: ✅ 25.417ms (SLO: <28.200ms -9.9%) vs baseline: +0.2% Memory: ✅ 67.603MB (SLO: <69.500MB -2.7%) vs baseline: +3.6% ✅ tracerTime: ✅ 20.490ms (SLO: <21.750ms -5.8%) vs baseline: -0.1% Memory: ✅ 65.313MB (SLO: <67.000MB -2.5%) vs baseline: +5.1% ✅ tracer-and-profilerTime: ✅ 22.622ms (SLO: <23.500ms -3.7%) vs baseline: +2.6% Memory: ✅ 66.761MB (SLO: <67.500MB 🟡 -1.1%) vs baseline: +5.2% ✅ tracer-dont-create-db-spansTime: ✅ 19.286ms (SLO: <21.500ms 📉 -10.3%) vs baseline: ~same Memory: ✅ 65.232MB (SLO: <66.000MB 🟡 -1.2%) vs baseline: +4.9% ✅ tracer-minimalTime: ✅ 16.627ms (SLO: <17.500ms -5.0%) vs baseline: ~same Memory: ✅ 65.274MB (SLO: <66.000MB 🟡 -1.1%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 20.513ms (SLO: <21.750ms -5.7%) vs baseline: +0.4% Memory: ✅ 71.428MB (SLO: <72.500MB 🟡 -1.5%) vs baseline: +5.4% ✅ tracer-no-cachesTime: ✅ 18.540ms (SLO: <19.650ms -5.6%) vs baseline: +0.5% Memory: ✅ 65.287MB (SLO: <67.000MB -2.6%) vs baseline: +5.1% ✅ tracer-no-databasesTime: ✅ 18.733ms (SLO: <20.100ms -6.8%) vs baseline: -0.5% Memory: ✅ 65.313MB (SLO: <67.000MB -2.5%) vs baseline: +5.0% ✅ tracer-no-middlewareTime: ✅ 20.190ms (SLO: <21.500ms -6.1%) vs baseline: +0.3% Memory: ✅ 65.267MB (SLO: <67.000MB -2.6%) vs baseline: +5.0% ✅ tracer-no-templatesTime: ✅ 20.329ms (SLO: <22.000ms -7.6%) vs baseline: +0.6% Memory: ✅ 65.254MB (SLO: <67.000MB -2.6%) vs baseline: +4.9% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.090ms (SLO: <19.850ms -8.9%) vs baseline: +0.2% Memory: ✅ 65.202MB (SLO: <66.500MB 🟡 -2.0%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 18.049ms (SLO: <19.400ms -7.0%) vs baseline: +0.3% Memory: ✅ 65.303MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.1% ✅ tracer-enabledTime: ✅ 18.025ms (SLO: <19.450ms -7.3%) vs baseline: ~same Memory: ✅ 65.237MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.598ms (SLO: <4.750ms -3.2%) vs baseline: +0.6% Memory: ✅ 61.951MB (SLO: <65.000MB -4.7%) vs baseline: +4.7% ✅ appsec-postTime: ✅ 6.617ms (SLO: <6.750ms 🟡 -2.0%) vs baseline: +0.1% Memory: ✅ 61.930MB (SLO: <65.000MB -4.7%) vs baseline: +4.8% ✅ appsec-telemetryTime: ✅ 4.588ms (SLO: <4.750ms -3.4%) vs baseline: -0.1% Memory: ✅ 61.912MB (SLO: <65.000MB -4.8%) vs baseline: +4.7% ✅ debuggerTime: ✅ 1.856ms (SLO: <2.000ms -7.2%) vs baseline: -0.3% Memory: ✅ 45.416MB (SLO: <47.000MB -3.4%) vs baseline: +4.7% ✅ iast-getTime: ✅ 1.859ms (SLO: <2.000ms -7.1%) vs baseline: ~same Memory: ✅ 42.448MB (SLO: <49.000MB 📉 -13.4%) vs baseline: +5.1% ✅ profilerTime: ✅ 1.917ms (SLO: <2.100ms -8.7%) vs baseline: +0.5% Memory: ✅ 46.458MB (SLO: <47.000MB 🟡 -1.2%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 3.368ms (SLO: <3.650ms -7.7%) vs baseline: +0.1% Memory: ✅ 52.219MB (SLO: <53.500MB -2.4%) vs baseline: +4.8% ✅ tracerTime: ✅ 3.354ms (SLO: <3.650ms -8.1%) vs baseline: +0.1% Memory: ✅ 52.219MB (SLO: <53.500MB -2.4%) vs baseline: +4.9% ✅ tracer-nativeTime: ✅ 3.358ms (SLO: <3.650ms -8.0%) vs baseline: +0.2% Memory: ✅ 58.108MB (SLO: <60.000MB -3.2%) vs baseline: +4.6%
|
4f2e334 to
ee7898a
Compare
ee7898a to
80c0310
Compare
Description
This PR makes slight improvements to the Profiling codebase in dd-trace-py.
Note that in many places, I had to use "quoted types" (e.g.
"asyncio.AbstractEventLoop") over "real types" (same but without quotes) because importing the right module (e.g.asyncio) could conflict with the logic of the module I was adding typing for.