-
Notifications
You must be signed in to change notification settings - Fork 468
fix(profiling): adapt Stack V2 to exception-free Echion #14933
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
fix(profiling): adapt Stack V2 to exception-free Echion #14933
Conversation
4063724 to
6c80385
Compare
|
|
6c80385 to
68f1350
Compare
8a9d043 to
2f846d5
Compare
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 240 ± 3 ms. The average import time from base is: 243 ± 4 ms. The import time difference between this PR and base is: -2.2 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate kowalski/fix-profiling-adapt-stack-v2-to-exception-free-echion (0e26f38) with baseline main (18a5e9a) 📈 Performance Regressions (1 suite)📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 5.187µs (SLO: <10.000µs 📉 -48.1%) vs baseline: 📈 +19.8% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ ospathbasename_noaspectTime: ✅ 1.079µs (SLO: <10.000µs 📉 -89.2%) vs baseline: -1.1% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.7% ✅ ospathjoin_aspectTime: ✅ 7.157µs (SLO: <10.000µs 📉 -28.4%) vs baseline: 📈 +15.0% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ ospathjoin_noaspectTime: ✅ 2.293µs (SLO: <10.000µs 📉 -77.1%) vs baseline: -0.2% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% ✅ ospathnormcase_aspectTime: ✅ 3.940µs (SLO: <10.000µs 📉 -60.6%) vs baseline: +9.7% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ ospathnormcase_noaspectTime: ✅ 0.578µs (SLO: <10.000µs 📉 -94.2%) vs baseline: +0.6% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ ospathsplit_aspectTime: ✅ 4.944µs (SLO: <10.000µs 📉 -50.6%) vs baseline: -0.6% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.6% ✅ ospathsplit_noaspectTime: ✅ 1.587µs (SLO: <10.000µs 📉 -84.1%) vs baseline: -0.6% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathsplitdrive_aspectTime: ✅ 3.785µs (SLO: <10.000µs 📉 -62.2%) vs baseline: +0.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathsplitdrive_noaspectTime: ✅ 0.696µs (SLO: <10.000µs 📉 -93.0%) vs baseline: -0.8% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathsplitext_aspectTime: ✅ 4.651µs (SLO: <10.000µs 📉 -53.5%) vs baseline: ~same Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ ospathsplitext_noaspectTime: ✅ 1.384µs (SLO: <10.000µs 📉 -86.2%) vs baseline: ~same Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.453ms (SLO: <22.300ms -8.3%) vs baseline: ~same Memory: ✅ 65.424MB (SLO: <67.000MB -2.4%) vs baseline: +4.7% ✅ exception-replay-enabledTime: ✅ 1.343ms (SLO: <1.450ms -7.3%) vs baseline: ~same Memory: ✅ 64.603MB (SLO: <67.000MB -3.6%) vs baseline: +4.9% ✅ iastTime: ✅ 20.487ms (SLO: <22.250ms -7.9%) vs baseline: ~same Memory: ✅ 65.471MB (SLO: <67.000MB -2.3%) vs baseline: +5.0% ✅ profilerTime: ✅ 15.284ms (SLO: <16.550ms -7.6%) vs baseline: +0.8% Memory: ✅ 53.812MB (SLO: <54.500MB 🟡 -1.3%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 20.494ms (SLO: <21.750ms -5.8%) vs baseline: ~same Memory: ✅ 65.447MB (SLO: <67.000MB -2.3%) vs baseline: +4.9% ✅ span-code-originTime: ✅ 25.342ms (SLO: <28.200ms 📉 -10.1%) vs baseline: +0.2% Memory: ✅ 67.442MB (SLO: <69.500MB -3.0%) vs baseline: +4.7% ✅ tracerTime: ✅ 20.429ms (SLO: <21.750ms -6.1%) vs baseline: -0.3% Memory: ✅ 65.518MB (SLO: <67.000MB -2.2%) vs baseline: +4.7% ✅ tracer-and-profilerTime: ✅ 22.039ms (SLO: <23.500ms -6.2%) vs baseline: ~same Memory: ✅ 66.649MB (SLO: <67.500MB 🟡 -1.3%) vs baseline: +4.8% ✅ tracer-dont-create-db-spansTime: ✅ 19.324ms (SLO: <21.500ms 📉 -10.1%) vs baseline: ~same Memory: ✅ 65.520MB (SLO: <66.000MB 🟡 -0.7%) vs baseline: +4.9% ✅ tracer-minimalTime: ✅ 16.552ms (SLO: <17.500ms -5.4%) vs baseline: -0.2% Memory: ✅ 65.419MB (SLO: <66.000MB 🟡 -0.9%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 20.466ms (SLO: <21.750ms -5.9%) vs baseline: -0.1% Memory: ✅ 71.361MB (SLO: <72.500MB 🟡 -1.6%) vs baseline: +4.8% ✅ tracer-no-cachesTime: ✅ 18.394ms (SLO: <19.650ms -6.4%) vs baseline: ~same Memory: ✅ 65.449MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-no-databasesTime: ✅ 18.769ms (SLO: <20.100ms -6.6%) vs baseline: -0.2% Memory: ✅ 65.292MB (SLO: <67.000MB -2.5%) vs baseline: +4.5% ✅ tracer-no-middlewareTime: ✅ 20.131ms (SLO: <21.500ms -6.4%) vs baseline: +0.2% Memory: ✅ 65.485MB (SLO: <67.000MB -2.3%) vs baseline: +4.9% ✅ tracer-no-templatesTime: ✅ 20.218ms (SLO: <22.000ms -8.1%) vs baseline: -0.2% Memory: ✅ 65.513MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.140ms (SLO: <19.850ms -8.6%) vs baseline: +0.9% Memory: ✅ 65.274MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.0% ✅ errortracking-enabled-userTime: ✅ 17.928ms (SLO: <19.400ms -7.6%) vs baseline: -0.2% Memory: ✅ 65.254MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 17.995ms (SLO: <19.450ms -7.5%) vs baseline: -0.5% Memory: ✅ 65.274MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.0% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.581ms (SLO: <4.750ms -3.6%) vs baseline: -0.2% Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +4.8% ✅ appsec-postTime: ✅ 6.599ms (SLO: <6.750ms -2.2%) vs baseline: +0.3% Memory: ✅ 61.951MB (SLO: <65.000MB -4.7%) vs baseline: +4.7% ✅ appsec-telemetryTime: ✅ 4.578ms (SLO: <4.750ms -3.6%) vs baseline: +0.1% Memory: ✅ 62.010MB (SLO: <65.000MB -4.6%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.855ms (SLO: <2.000ms -7.3%) vs baseline: ~same Memory: ✅ 45.377MB (SLO: <47.000MB -3.5%) vs baseline: +4.6% ✅ iast-getTime: ✅ 1.861ms (SLO: <2.000ms -6.9%) vs baseline: +0.1% Memory: ✅ 42.369MB (SLO: <49.000MB 📉 -13.5%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.906ms (SLO: <2.100ms -9.3%) vs baseline: -0.1% Memory: ✅ 46.458MB (SLO: <47.000MB 🟡 -1.2%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.366ms (SLO: <3.650ms -7.8%) vs baseline: +0.2% Memory: ✅ 52.258MB (SLO: <53.500MB -2.3%) vs baseline: +4.9% ✅ tracerTime: ✅ 3.361ms (SLO: <3.650ms -7.9%) vs baseline: +0.4% Memory: ✅ 52.239MB (SLO: <53.500MB -2.4%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 3.355ms (SLO: <3.650ms -8.1%) vs baseline: ~same Memory: ✅ 58.186MB (SLO: <60.000MB -3.0%) vs baseline: +4.5% 🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 2.932µs (SLO: <20.000µs 📉 -85.3%) vs baseline: +0.8% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.7% ✅ 1-count-metrics-100-timesTime: ✅ 203.017µs (SLO: <220.000µs -7.7%) vs baseline: +0.5% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ 1-distribution-metric-1-timesTime: ✅ 3.332µs (SLO: <20.000µs 📉 -83.3%) vs baseline: -0.3% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.5% ✅ 1-distribution-metrics-100-timesTime: ✅ 212.963µs (SLO: <220.000µs -3.2%) vs baseline: -0.5% Memory: ✅ 32.126MB (SLO: <34.000MB -5.5%) vs baseline: +4.7% ✅ 1-gauge-metric-1-timesTime: ✅ 2.164µs (SLO: <20.000µs 📉 -89.2%) vs baseline: -0.6% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +5.0% ✅ 1-gauge-metrics-100-timesTime: ✅ 136.652µs (SLO: <150.000µs -8.9%) vs baseline: -0.7% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.5% ✅ 1-rate-metric-1-timesTime: ✅ 3.040µs (SLO: <20.000µs 📉 -84.8%) vs baseline: -0.9% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.9% ✅ 1-rate-metrics-100-timesTime: ✅ 217.291µs (SLO: <250.000µs 📉 -13.1%) vs baseline: ~same Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 100-count-metrics-100-timesTime: ✅ 20.419ms (SLO: <22.000ms -7.2%) vs baseline: -0.5% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.0% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.257ms (SLO: <2.300ms 🟡 -1.9%) vs baseline: -0.8% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.0% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.405ms (SLO: <1.550ms -9.4%) vs baseline: -0.7% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.6% ✅ 100-rate-metrics-100-timesTime: ✅ 2.215ms (SLO: <2.550ms 📉 -13.1%) vs baseline: -0.2% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ flush-1-metricTime: ✅ 4.413µs (SLO: <20.000µs 📉 -77.9%) vs baseline: -1.8% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.0% ✅ flush-100-metricsTime: ✅ 172.962µs (SLO: <250.000µs 📉 -30.8%) vs baseline: -1.5% Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ flush-1000-metricsTime: ✅ 2.110ms (SLO: <2.500ms 📉 -15.6%) vs baseline: -1.5% Memory: ✅ 33.030MB (SLO: <34.500MB -4.3%) vs baseline: +5.1%
|
|
Merged main into this in order to restart failed CI jobs (due to the AWS outage) |
9800349 to
0a6a492
Compare
ec25e1c to
78fd64c
Compare
78fd64c to
0e26f38
Compare
|
The backport to To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-3.16 3.16
# Navigate to the new working tree
cd .worktrees/backport-3.16
# Create a new branch
git switch --create backport-14933-to-3.16
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 2c72bca069062bb83478c4372e84e70b0b5af1d0
# Push it to GitHub
git push --set-upstream origin backport-14933-to-3.16
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-3.16Then, create a pull request where the |
|
The backport to To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-3.15 3.15
# Navigate to the new working tree
cd .worktrees/backport-3.15
# Create a new branch
git switch --create backport-14933-to-3.15
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 2c72bca069062bb83478c4372e84e70b0b5af1d0
# Push it to GitHub
git push --set-upstream origin backport-14933-to-3.15
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-3.15Then, create a pull request where the |
|
The backport to To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-3.14 3.14
# Navigate to the new working tree
cd .worktrees/backport-3.14
# Create a new branch
git switch --create backport-14933-to-3.14
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 2c72bca069062bb83478c4372e84e70b0b5af1d0
# Push it to GitHub
git push --set-upstream origin backport-14933-to-3.14
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-3.14Then, create a pull request where the |
This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
## What does this PR do? This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
## What does this PR do? This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 --------- Co-authored-by: Taegyun Kim <[email protected]> (cherry picked from commit 2c72bca)
…7] (#15052) Backport 2c72bca from #14933 to 3.17. ## What does this PR do? This PR updates Echion to use the latest version. Included Echion PRs - [refactor: stop using exceptions for reporting errors](P403n1x87/echion#156) - [misc: remove Error classes](P403n1x87/echion#164) - [bug: avoid possibly unbounded memory allocations](P403n1x87/echion#159) - [fix: remove extra loop in Frame::read() for 3.13+](P403n1x87/echion#167) - [refactor: return std::reference_wrapper over raw pointer](P403n1x87/echion#168) See comparison here P403n1x87/echion@3ebeb3e...39d74a3 Co-authored-by: T. Kowalski <[email protected]> Co-authored-by: Taegyun Kim <[email protected]>
What does this PR do?
This PR updates Echion to use the latest version.
Included Echion PRs
See comparison here P403n1x87/echion@3ebeb3e...39d74a3