perf(debugger): reduce code origin startup time II#15963
Conversation
Codeowners resolved as |
Performance SLOsComparing candidate revert-15776-revert-15272-code-origin-lazy-wrapping (c0cb068) with baseline main (f78a0b6) 📈 Performance Regressions (3 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 103.501µs (SLO: <130.000µs 📉 -20.4%) vs baseline: +2.9% Memory: ✅ 42.605MB (SLO: <43.250MB 🟡 -1.5%) vs baseline: +4.8% ✅ add_inplace_aspectTime: ✅ 100.675µs (SLO: <130.000µs 📉 -22.6%) vs baseline: -1.1% Memory: ✅ 42.585MB (SLO: <43.250MB 🟡 -1.5%) vs baseline: +4.7% ✅ add_inplace_noaspectTime: ✅ 28.246µs (SLO: <40.000µs 📉 -29.4%) vs baseline: ~same Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +5.0% ✅ add_noaspectTime: ✅ 48.789µs (SLO: <70.000µs 📉 -30.3%) vs baseline: -0.9% Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +4.8% ✅ bytearray_aspectTime: ✅ 258.070µs (SLO: <400.000µs 📉 -35.5%) vs baseline: +0.2% Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +4.9% ✅ bytearray_extend_aspectTime: ✅ 653.795µs (SLO: <800.000µs 📉 -18.3%) vs baseline: +0.1% Memory: ✅ 42.723MB (SLO: <43.500MB 🟡 -1.8%) vs baseline: +5.1% ✅ bytearray_extend_noaspectTime: ✅ 269.740µs (SLO: <400.000µs 📉 -32.6%) vs baseline: +1.1% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9% ✅ bytearray_noaspectTime: ✅ 140.202µs (SLO: <300.000µs 📉 -53.3%) vs baseline: -0.3% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9% ✅ bytes_aspectTime: ✅ 222.392µs (SLO: <300.000µs 📉 -25.9%) vs baseline: ~same Memory: ✅ 42.664MB (SLO: <43.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ bytes_noaspectTime: ✅ 135.455µs (SLO: <200.000µs 📉 -32.3%) vs baseline: ~same Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +4.8% ✅ bytesio_aspectTime: ✅ 3.837ms (SLO: <5.000ms 📉 -23.3%) vs baseline: +0.3% Memory: ✅ 42.782MB (SLO: <43.500MB 🟡 -1.7%) vs baseline: +5.1% ✅ bytesio_noaspectTime: ✅ 320.865µs (SLO: <420.000µs 📉 -23.6%) vs baseline: +0.6% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.8% ✅ capitalize_aspectTime: ✅ 90.181µs (SLO: <300.000µs 📉 -69.9%) vs baseline: -0.3% Memory: ✅ 42.703MB (SLO: <43.500MB 🟡 -1.8%) vs baseline: +5.4% ✅ capitalize_noaspectTime: ✅ 251.166µs (SLO: <300.000µs 📉 -16.3%) vs baseline: +0.2% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.0% ✅ casefold_aspectTime: ✅ 90.169µs (SLO: <500.000µs 📉 -82.0%) vs baseline: ~same Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.8% ✅ casefold_noaspectTime: ✅ 307.775µs (SLO: <500.000µs 📉 -38.4%) vs baseline: +0.1% Memory: ✅ 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.7% ✅ decode_aspectTime: ✅ 87.517µs (SLO: <100.000µs 📉 -12.5%) vs baseline: +0.4% Memory: ✅ 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.7% ✅ decode_noaspectTime: ✅ 152.721µs (SLO: <210.000µs 📉 -27.3%) vs baseline: -0.1% Memory: ✅ 42.664MB (SLO: <43.500MB 🟡 -1.9%) vs baseline: +5.0% ✅ encode_aspectTime: ✅ 85.235µs (SLO: <200.000µs 📉 -57.4%) vs baseline: +0.3% Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +5.0% ✅ encode_noaspectTime: ✅ 138.380µs (SLO: <200.000µs 📉 -30.8%) vs baseline: -0.6% Memory: ✅ 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.6% ✅ format_aspectTime: ✅ 14.633ms (SLO: <19.200ms 📉 -23.8%) vs baseline: -0.7% Memory: ✅ 42.743MB (SLO: <43.250MB 🟡 -1.2%) vs baseline: +4.8% ✅ format_map_aspectTime: ✅ 16.448ms (SLO: <21.500ms 📉 -23.5%) vs baseline: ~same Memory: ✅ 42.782MB (SLO: <43.500MB 🟡 -1.7%) vs baseline: +4.9% ✅ format_map_noaspectTime: ✅ 367.750µs (SLO: <500.000µs 📉 -26.5%) vs baseline: -0.7% Memory: ✅ 42.644MB (SLO: <43.250MB 🟡 -1.4%) vs baseline: +4.9% ✅ format_noaspectTime: ✅ 307.762µs (SLO: <500.000µs 📉 -38.4%) vs baseline: ~same Memory: ✅ 42.566MB (SLO: <43.250MB 🟡 -1.6%) vs baseline: +4.6% ✅ index_aspectTime: ✅ 134.783µs (SLO: <300.000µs 📉 -55.1%) vs baseline: +8.4% Memory: ✅ 42.644MB (SLO: <43.250MB 🟡 -1.4%) vs baseline: +5.0% ✅ index_noaspectTime: ✅ 40.428µs (SLO: <300.000µs 📉 -86.5%) vs baseline: +0.2% Memory: ✅ 42.684MB (SLO: <43.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ join_aspectTime: ✅ 217.592µs (SLO: <300.000µs 📉 -27.5%) vs baseline: -0.4% Memory: ✅ 42.664MB (SLO: <43.500MB 🟡 -1.9%) vs baseline: +5.1% ✅ join_noaspectTime: ✅ 150.652µs (SLO: <300.000µs 📉 -49.8%) vs baseline: +0.5% Memory: ✅ 42.644MB (SLO: <43.250MB 🟡 -1.4%) vs baseline: +5.0% ✅ ljust_aspectTime: ✅ 578.136µs (SLO: <700.000µs 📉 -17.4%) vs baseline: 📈 +15.9% Memory: ✅ 42.625MB (SLO: <43.250MB 🟡 -1.4%) vs baseline: +4.8% ✅ ljust_noaspectTime: ✅ 257.225µs (SLO: <300.000µs 📉 -14.3%) vs baseline: +0.7% Memory: ✅ 42.585MB (SLO: <43.250MB 🟡 -1.5%) vs baseline: +4.8% ✅ lower_aspectTime: ✅ 303.832µs (SLO: <500.000µs 📉 -39.2%) vs baseline: -0.7% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.8% ✅ lower_noaspectTime: ✅ 235.595µs (SLO: <300.000µs 📉 -21.5%) vs baseline: -0.3% Memory: ✅ 42.605MB (SLO: <43.250MB 🟡 -1.5%) vs baseline: +4.8% ✅ lstrip_aspectTime: ✅ 0.273ms (SLO: <3.000ms 📉 -90.9%) vs baseline: +0.3% Memory: ✅ 42.625MB (SLO: <43.250MB 🟡 -1.4%) vs baseline: +4.9% ✅ lstrip_noaspectTime: ✅ 0.180ms (SLO: <3.000ms 📉 -94.0%) vs baseline: +0.2% Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +4.9% ✅ modulo_aspectTime: ✅ 14.288ms (SLO: <18.750ms 📉 -23.8%) vs baseline: -0.7% Memory: ✅ 42.821MB (SLO: <43.500MB 🟡 -1.6%) vs baseline: +5.1% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 14.889ms (SLO: <19.350ms 📉 -23.1%) vs baseline: +0.3% Memory: ✅ 42.841MB (SLO: <43.500MB 🟡 -1.5%) vs baseline: +5.5% ✅ modulo_aspect_for_bytesTime: ✅ 14.509ms (SLO: <18.900ms 📉 -23.2%) vs baseline: -0.3% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.3% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 14.686ms (SLO: <19.150ms 📉 -23.3%) vs baseline: -0.3% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.4% ✅ modulo_noaspectTime: ✅ 0.359ms (SLO: <3.000ms 📉 -88.0%) vs baseline: -0.3% Memory: ✅ 42.703MB (SLO: <43.500MB 🟡 -1.8%) vs baseline: +5.1% ✅ replace_aspectTime: ✅ 18.472ms (SLO: <24.000ms 📉 -23.0%) vs baseline: ~same Memory: ✅ 42.644MB (SLO: <44.000MB -3.1%) vs baseline: +4.6% ✅ replace_noaspectTime: ✅ 285.486µs (SLO: <300.000µs -4.8%) vs baseline: ~same Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +4.8% ✅ repr_aspectTime: ✅ 317.191µs (SLO: <420.000µs 📉 -24.5%) vs baseline: ~same Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9% ✅ repr_noaspectTime: ✅ 47.466µs (SLO: <90.000µs 📉 -47.3%) vs baseline: +1.6% Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +5.0% ✅ rstrip_aspectTime: ✅ 378.801µs (SLO: <500.000µs 📉 -24.2%) vs baseline: -0.3% Memory: ✅ 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.6% ✅ rstrip_noaspectTime: ✅ 182.981µs (SLO: <300.000µs 📉 -39.0%) vs baseline: -0.5% Memory: ✅ 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.0% ✅ slice_aspectTime: ✅ 181.702µs (SLO: <300.000µs 📉 -39.4%) vs baseline: +0.4% Memory: ✅ 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.9% ✅ slice_noaspectTime: ✅ 53.974µs (SLO: <90.000µs 📉 -40.0%) vs baseline: +0.5% Memory: ✅ 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.8% ✅ stringio_aspectTime: ✅ 4.449ms (SLO: <5.000ms 📉 -11.0%) vs baseline: 📈 +14.9% Memory: ✅ 42.684MB (SLO: <43.500MB 🟡 -1.9%) vs baseline: +5.0% ✅ stringio_noaspectTime: ✅ 352.807µs (SLO: <500.000µs 📉 -29.4%) vs baseline: -0.8% Memory: ✅ 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.5% ✅ strip_aspectTime: ✅ 269.158µs (SLO: <350.000µs 📉 -23.1%) vs baseline: -0.5% Memory: ✅ 42.743MB (SLO: <43.500MB 🟡 -1.7%) vs baseline: +5.3% ✅ strip_noaspectTime: ✅ 177.067µs (SLO: <240.000µs 📉 -26.2%) vs baseline: -1.2% Memory: ✅ 42.664MB (SLO: <43.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ swapcase_aspectTime: ✅ 342.707µs (SLO: <500.000µs 📉 -31.5%) vs baseline: -0.1% Memory: ✅ 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9% ✅ swapcase_noaspectTime: ✅ 271.588µs (SLO: <400.000µs 📉 -32.1%) vs baseline: -0.2% Memory: ✅ 42.644MB (SLO: <43.500MB 🟡 -2.0%) vs baseline: +4.9% ✅ title_aspectTime: ✅ 331.895µs (SLO: <500.000µs 📉 -33.6%) vs baseline: +0.1% Memory: ✅ 42.585MB (SLO: <43.000MB 🟡 -1.0%) vs baseline: +4.9% ✅ title_noaspectTime: ✅ 259.595µs (SLO: <400.000µs 📉 -35.1%) vs baseline: +1.0% Memory: ✅ 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9% ✅ translate_aspectTime: ✅ 499.299µs (SLO: <700.000µs 📉 -28.7%) vs baseline: -0.4% Memory: ✅ 42.703MB (SLO: <43.500MB 🟡 -1.8%) vs baseline: +4.8% ✅ translate_noaspectTime: ✅ 424.025µs (SLO: <500.000µs 📉 -15.2%) vs baseline: -0.6% Memory: ✅ 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.8% ✅ upper_aspectTime: ✅ 305.911µs (SLO: <500.000µs 📉 -38.8%) vs baseline: +0.2% Memory: ✅ 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.8% ✅ upper_noaspectTime: ✅ 233.867µs (SLO: <400.000µs 📉 -41.5%) vs baseline: +0.5% Memory: ✅ 42.664MB (SLO: <43.500MB 🟡 -1.9%) vs baseline: +5.1% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 500.589µs (SLO: <700.000µs 📉 -28.5%) vs baseline: 📈 +19.6% Memory: ✅ 42.408MB (SLO: <43.500MB -2.5%) vs baseline: +5.2% ✅ ospathbasename_noaspectTime: ✅ 428.361µs (SLO: <700.000µs 📉 -38.8%) vs baseline: -0.5% Memory: ✅ 42.231MB (SLO: <43.500MB -2.9%) vs baseline: +4.6% ✅ ospathjoin_aspectTime: ✅ 617.928µs (SLO: <700.000µs 📉 -11.7%) vs baseline: -0.5% Memory: ✅ 42.389MB (SLO: <43.500MB -2.6%) vs baseline: +5.1% ✅ ospathjoin_noaspectTime: ✅ 628.745µs (SLO: <700.000µs 📉 -10.2%) vs baseline: -0.4% Memory: ✅ 42.290MB (SLO: <43.500MB -2.8%) vs baseline: +5.1% ✅ ospathnormcase_aspectTime: ✅ 353.404µs (SLO: <700.000µs 📉 -49.5%) vs baseline: +0.4% Memory: ✅ 42.487MB (SLO: <43.500MB -2.3%) vs baseline: +5.1% ✅ ospathnormcase_noaspectTime: ✅ 354.499µs (SLO: <700.000µs 📉 -49.4%) vs baseline: -0.3% Memory: ✅ 42.408MB (SLO: <43.500MB -2.5%) vs baseline: +5.2% ✅ ospathsplit_aspectTime: ✅ 483.653µs (SLO: <700.000µs 📉 -30.9%) vs baseline: ~same Memory: ✅ 42.290MB (SLO: <43.500MB -2.8%) vs baseline: +4.8% ✅ ospathsplit_noaspectTime: ✅ 497.542µs (SLO: <700.000µs 📉 -28.9%) vs baseline: ~same Memory: ✅ 42.349MB (SLO: <43.500MB -2.6%) vs baseline: +5.1% ✅ ospathsplitdrive_aspectTime: ✅ 373.601µs (SLO: <700.000µs 📉 -46.6%) vs baseline: +0.9% Memory: ✅ 42.428MB (SLO: <43.500MB -2.5%) vs baseline: +5.1% ✅ ospathsplitdrive_noaspectTime: ✅ 73.166µs (SLO: <700.000µs 📉 -89.5%) vs baseline: -0.4% Memory: ✅ 42.369MB (SLO: <43.500MB -2.6%) vs baseline: +5.2% ✅ ospathsplitext_aspectTime: ✅ 455.571µs (SLO: <700.000µs 📉 -34.9%) vs baseline: -1.0% Memory: ✅ 42.290MB (SLO: <43.500MB -2.8%) vs baseline: +4.7% ✅ ospathsplitext_noaspectTime: ✅ 462.387µs (SLO: <700.000µs 📉 -33.9%) vs baseline: -1.1% Memory: ✅ 42.212MB (SLO: <43.500MB -3.0%) vs baseline: +4.5% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.381µs (SLO: <20.000µs 📉 -83.1%) vs baseline: 📈 +13.6% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.7% ✅ 1-count-metrics-100-timesTime: ✅ 199.439µs (SLO: <220.000µs -9.3%) vs baseline: +0.4% Memory: ✅ 34.957MB (SLO: <35.500MB 🟡 -1.5%) vs baseline: +5.0% ✅ 1-distribution-metric-1-timesTime: ✅ 3.328µs (SLO: <20.000µs 📉 -83.4%) vs baseline: ~same Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +4.9% ✅ 1-distribution-metrics-100-timesTime: ✅ 213.980µs (SLO: <230.000µs -7.0%) vs baseline: ~same Memory: ✅ 34.957MB (SLO: <35.500MB 🟡 -1.5%) vs baseline: +5.0% ✅ 1-gauge-metric-1-timesTime: ✅ 2.172µs (SLO: <20.000µs 📉 -89.1%) vs baseline: -0.2% Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.7% ✅ 1-gauge-metrics-100-timesTime: ✅ 137.784µs (SLO: <150.000µs -8.1%) vs baseline: +0.7% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.7% ✅ 1-rate-metric-1-timesTime: ✅ 3.120µs (SLO: <20.000µs 📉 -84.4%) vs baseline: -0.2% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ 1-rate-metrics-100-timesTime: ✅ 212.660µs (SLO: <250.000µs 📉 -14.9%) vs baseline: +0.2% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.9% ✅ 100-count-metrics-100-timesTime: ✅ 20.173ms (SLO: <22.000ms -8.3%) vs baseline: +1.3% Memory: ✅ 34.878MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.9% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.244ms (SLO: <2.550ms 📉 -12.0%) vs baseline: +0.6% Memory: ✅ 34.937MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +4.8% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.413ms (SLO: <1.550ms -8.8%) vs baseline: +0.2% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.7% ✅ 100-rate-metrics-100-timesTime: ✅ 2.185ms (SLO: <2.550ms 📉 -14.3%) vs baseline: +0.7% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.6% ✅ flush-1-metricTime: ✅ 4.582µs (SLO: <20.000µs 📉 -77.1%) vs baseline: +0.9% Memory: ✅ 35.212MB (SLO: <35.500MB 🟡 -0.8%) vs baseline: +4.9% ✅ flush-100-metricsTime: ✅ 175.170µs (SLO: <250.000µs 📉 -29.9%) vs baseline: ~same Memory: ✅ 35.232MB (SLO: <35.500MB 🟡 -0.8%) vs baseline: +4.5% ✅ flush-1000-metricsTime: ✅ 2.193ms (SLO: <2.500ms 📉 -12.3%) vs baseline: -0.1% Memory: ✅ 36.019MB (SLO: <36.500MB 🟡 -1.3%) vs baseline: +4.8% 🟡 Near SLO Breach (15 suites)🟡 coreapiscenario - 10/10 (1 unstable)
|
01d5e1b to
8879939
Compare
|
@P403n1x87 should we do some more failure testing? I'm worried about scenarios involving multiple wraps/unwraps of the same function (both trampoline and fully instrumented) |
👍 I've added support for multiple lazy wrapping. The original PR already had multiple wrapping via function probes mixed with lazy wrapping, so that part should be covered. |
|
What is the diff from the original PR? |
The commits on top of the first one |
This comment has been minimized.
This comment has been minimized.
We re-introduce the improvement of DataDog#15272 with the bugfix that allows the same view function to be registered multiple times
We re-introduce the improvement of #15272 with the bugfix that allows the same view function to be registered multiple times