-
Notifications
You must be signed in to change notification settings - Fork 463
ci: use Python version specific CARGO_TARGET_DIR #14953
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: 245 ± 4 ms. The average import time from base is: 244 ± 3 ms. The import time difference between this PR and base is: 0.7 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
but these all run in different jobs, so should be fully isolated from each other? |
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 am a fan of this, I was recently looking into how we could do caching in the cibw GHA (tl;dr; it is hard), but this is a nice change to move in a more cachable direction
I thought so too, but they seem to be running in the same directory. And that's why I needed to make sure that every single .so file has version specific identifier if they're compiled/linked with Python binaries ffa6494 Otherwise, one job's artifact overwrites the others and all tests start using the same .so file and tests fail |
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.
Thanks for doing this! I don't have much context but what I see does seem to make sense to me.
Performance SLOsComparing candidate taegyunkim/rust-targe-tdir (d1043eb) with baseline main (7451e84) 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.430ms (SLO: <22.300ms -8.4%) vs baseline: -0.2% Memory: ✅ 65.499MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ exception-replay-enabledTime: ✅ 1.345ms (SLO: <1.450ms -7.2%) vs baseline: +0.1% Memory: ✅ 64.583MB (SLO: <67.000MB -3.6%) vs baseline: +4.7% ✅ iastTime: ✅ 20.464ms (SLO: <22.250ms -8.0%) vs baseline: +0.3% Memory: ✅ 65.509MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.289ms (SLO: <16.550ms -7.6%) vs baseline: +0.4% Memory: ✅ 53.802MB (SLO: <54.500MB 🟡 -1.3%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 20.546ms (SLO: <21.750ms -5.5%) vs baseline: ~same Memory: ✅ 65.315MB (SLO: <67.000MB -2.5%) vs baseline: +4.6% ✅ span-code-originTime: ✅ 25.388ms (SLO: <28.200ms -10.0%) vs baseline: ~same Memory: ✅ 67.559MB (SLO: <69.500MB -2.8%) vs baseline: +4.9% ✅ tracerTime: ✅ 20.416ms (SLO: <21.750ms -6.1%) vs baseline: -0.3% Memory: ✅ 65.448MB (SLO: <67.000MB -2.3%) vs baseline: +4.7% ✅ tracer-and-profilerTime: ✅ 22.036ms (SLO: <23.500ms -6.2%) vs baseline: -0.3% Memory: ✅ 66.630MB (SLO: <67.500MB 🟡 -1.3%) vs baseline: +5.0% ✅ tracer-dont-create-db-spansTime: ✅ 19.349ms (SLO: <21.500ms 📉 -10.0%) vs baseline: ~same Memory: ✅ 65.444MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +4.8% ✅ tracer-minimalTime: ✅ 16.600ms (SLO: <17.500ms -5.1%) vs baseline: -0.2% Memory: ✅ 65.445MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +4.8% ✅ tracer-nativeTime: ✅ 20.434ms (SLO: <21.750ms -6.1%) vs baseline: -0.2% Memory: ✅ 71.456MB (SLO: <72.500MB 🟡 -1.4%) vs baseline: +4.9% ✅ tracer-no-cachesTime: ✅ 18.444ms (SLO: <19.650ms -6.1%) vs baseline: +0.3% Memory: ✅ 65.457MB (SLO: <67.000MB -2.3%) vs baseline: +4.9% ✅ tracer-no-databasesTime: ✅ 18.808ms (SLO: <20.100ms -6.4%) vs baseline: +0.5% Memory: ✅ 65.247MB (SLO: <67.000MB -2.6%) vs baseline: +4.4% ✅ tracer-no-middlewareTime: ✅ 20.191ms (SLO: <21.500ms -6.1%) vs baseline: +0.3% Memory: ✅ 65.444MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.234ms (SLO: <22.000ms -8.0%) vs baseline: -0.6% Memory: ✅ 65.480MB (SLO: <67.000MB -2.3%) vs baseline: +5.0% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 17.988ms (SLO: <19.850ms -9.4%) vs baseline: -0.3% Memory: ✅ 65.313MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 18.027ms (SLO: <19.400ms -7.1%) vs baseline: -0.2% Memory: ✅ 65.254MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 18.038ms (SLO: <19.450ms -7.3%) vs baseline: -0.2% Memory: ✅ 65.352MB (SLO: <66.500MB 🟡 -1.7%) vs baseline: +5.0% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.577ms (SLO: <4.750ms -3.6%) vs baseline: +0.3% Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +4.8% ✅ appsec-postTime: ✅ 6.600ms (SLO: <6.750ms -2.2%) vs baseline: -0.1% Memory: ✅ 62.010MB (SLO: <65.000MB -4.6%) vs baseline: +4.9% ✅ appsec-telemetryTime: ✅ 4.579ms (SLO: <4.750ms -3.6%) vs baseline: +0.1% Memory: ✅ 62.030MB (SLO: <65.000MB -4.6%) vs baseline: +5.1% ✅ debuggerTime: ✅ 1.857ms (SLO: <2.000ms -7.2%) vs baseline: ~same Memory: ✅ 45.436MB (SLO: <47.000MB -3.3%) vs baseline: +5.1% ✅ iast-getTime: ✅ 1.859ms (SLO: <2.000ms -7.1%) vs baseline: -0.5% Memory: ✅ 42.408MB (SLO: <49.000MB 📉 -13.5%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.907ms (SLO: <2.100ms -9.2%) vs baseline: -0.5% Memory: ✅ 46.458MB (SLO: <47.000MB 🟡 -1.2%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 3.369ms (SLO: <3.650ms -7.7%) vs baseline: +0.4% Memory: ✅ 52.219MB (SLO: <53.500MB -2.4%) vs baseline: +4.7% ✅ tracerTime: ✅ 3.354ms (SLO: <3.650ms -8.1%) vs baseline: -0.2% Memory: ✅ 52.278MB (SLO: <53.500MB -2.3%) vs baseline: +4.9% ✅ tracer-nativeTime: ✅ 3.357ms (SLO: <3.650ms -8.0%) vs baseline: ~same Memory: ✅ 58.316MB (SLO: <60.000MB -2.8%) vs baseline: +5.0% 🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.047µs (SLO: <20.000µs 📉 -84.8%) vs baseline: +3.3% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-count-metrics-100-timesTime: ✅ 204.383µs (SLO: <220.000µs -7.1%) vs baseline: +0.7% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.0% ✅ 1-distribution-metric-1-timesTime: ✅ 3.633µs (SLO: <20.000µs 📉 -81.8%) vs baseline: +9.5% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 1-distribution-metrics-100-timesTime: ✅ 217.120µs (SLO: <220.000µs 🟡 -1.3%) vs baseline: +1.0% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.8% ✅ 1-gauge-metric-1-timesTime: ✅ 2.273µs (SLO: <20.000µs 📉 -88.6%) vs baseline: +3.5% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-gauge-metrics-100-timesTime: ✅ 137.699µs (SLO: <150.000µs -8.2%) vs baseline: -0.4% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 1-rate-metric-1-timesTime: ✅ 3.214µs (SLO: <20.000µs 📉 -83.9%) vs baseline: +4.7% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.7% ✅ 1-rate-metrics-100-timesTime: ✅ 218.102µs (SLO: <250.000µs 📉 -12.8%) vs baseline: +0.9% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.5% ✅ 100-count-metrics-100-timesTime: ✅ 20.452ms (SLO: <22.000ms -7.0%) vs baseline: -1.7% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.8% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.250ms (SLO: <2.300ms -2.2%) vs baseline: -0.7% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.5% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.411ms (SLO: <1.550ms -8.9%) vs baseline: -0.9% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.1% ✅ 100-rate-metrics-100-timesTime: ✅ 2.232ms (SLO: <2.550ms 📉 -12.5%) vs baseline: -1.2% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.7% ✅ flush-1-metricTime: ✅ 4.548µs (SLO: <20.000µs 📉 -77.3%) vs baseline: +1.9% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.7% ✅ flush-100-metricsTime: ✅ 175.531µs (SLO: <250.000µs 📉 -29.8%) vs baseline: +0.7% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.1% ✅ flush-1000-metricsTime: ✅ 2.118ms (SLO: <2.500ms 📉 -15.3%) vs baseline: -0.6% Memory: ✅ 32.893MB (SLO: <34.500MB -4.7%) vs baseline: +4.7%
|
Description
Use Python version specific
CARGO_TARGET_DIR
for src/native, Rust extension module. This has a few benefitsCARGO_TARGET_DIR
, and there's cargo lock, only one of them could run at a time.Testing
Risks
Additional Notes