ci: skip microbenchmarks that don't apply to a PR's diff [APMLP-995]#16351
ci: skip microbenchmarks that don't apply to a PR's diff [APMLP-995]#16351emmettbutler wants to merge 16 commits intomainfrom
Conversation
Codeowners resolved as |
Performance SLOsComparing candidate emmett.butler/microbenchmarks-suitespec-2 (39acf2a) with baseline main (3eee1c9) 📈 Performance Regressions (4 suites)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 105.334µs (SLO: <130.000µs 📉 -19.0%) vs baseline: +3.3% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +4.7% ✅ add_inplace_aspectTime: ✅ 102.253µs (SLO: <130.000µs 📉 -21.3%) vs baseline: +0.8% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.7% ✅ add_inplace_noaspectTime: ✅ 28.224µs (SLO: <40.000µs 📉 -29.4%) vs baseline: -0.9% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ add_noaspectTime: ✅ 48.863µs (SLO: <70.000µs 📉 -30.2%) vs baseline: +0.2% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ bytearray_aspectTime: ✅ 252.728µs (SLO: <400.000µs 📉 -36.8%) vs baseline: +0.6% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +5.1% ✅ bytearray_extend_aspectTime: ✅ 648.317µs (SLO: <800.000µs 📉 -19.0%) vs baseline: +1.8% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ bytearray_extend_noaspectTime: ✅ 267.228µs (SLO: <400.000µs 📉 -33.2%) vs baseline: +0.5% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ bytearray_noaspectTime: ✅ 140.966µs (SLO: <300.000µs 📉 -53.0%) vs baseline: +1.7% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9% ✅ bytes_aspectTime: ✅ 220.119µs (SLO: <300.000µs 📉 -26.6%) vs baseline: +1.1% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +4.8% ✅ bytes_noaspectTime: ✅ 134.705µs (SLO: <200.000µs 📉 -32.6%) vs baseline: ~same Memory: ✅ 43.234MB (SLO: <46.000MB -6.0%) vs baseline: +5.4% ✅ bytesio_aspectTime: ✅ 3.864ms (SLO: <5.000ms 📉 -22.7%) vs baseline: +0.8% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9% ✅ bytesio_noaspectTime: ✅ 320.955µs (SLO: <420.000µs 📉 -23.6%) vs baseline: +0.2% Memory: ✅ 43.136MB (SLO: <46.000MB -6.2%) vs baseline: +5.2% ✅ capitalize_aspectTime: ✅ 88.802µs (SLO: <300.000µs 📉 -70.4%) vs baseline: +0.4% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +4.7% ✅ capitalize_noaspectTime: ✅ 261.952µs (SLO: <300.000µs 📉 -12.7%) vs baseline: +4.1% Memory: ✅ 43.037MB (SLO: <46.000MB -6.4%) vs baseline: +5.2% ✅ casefold_aspectTime: ✅ 88.504µs (SLO: <500.000µs 📉 -82.3%) vs baseline: +0.6% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +4.7% ✅ casefold_noaspectTime: ✅ 311.491µs (SLO: <500.000µs 📉 -37.7%) vs baseline: +0.2% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ decode_aspectTime: ✅ 87.026µs (SLO: <100.000µs 📉 -13.0%) vs baseline: -0.2% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.8% ✅ decode_noaspectTime: ✅ 155.149µs (SLO: <210.000µs 📉 -26.1%) vs baseline: +0.6% Memory: ✅ 43.096MB (SLO: <46.000MB -6.3%) vs baseline: +5.3% ✅ encode_aspectTime: ✅ 85.437µs (SLO: <200.000µs 📉 -57.3%) vs baseline: +0.5% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.6% ✅ encode_noaspectTime: ✅ 142.615µs (SLO: <200.000µs 📉 -28.7%) vs baseline: +2.8% Memory: ✅ 43.116MB (SLO: <46.000MB -6.3%) vs baseline: +5.0% ✅ format_aspectTime: ✅ 14.654ms (SLO: <19.200ms 📉 -23.7%) vs baseline: -0.4% Memory: ✅ 43.096MB (SLO: <46.000MB -6.3%) vs baseline: +4.8% ✅ format_map_aspectTime: ✅ 16.440ms (SLO: <21.500ms 📉 -23.5%) vs baseline: ~same Memory: ✅ 43.136MB (SLO: <46.000MB -6.2%) vs baseline: +5.1% ✅ format_map_noaspectTime: ✅ 377.495µs (SLO: <500.000µs 📉 -24.5%) vs baseline: +2.1% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +4.4% ✅ format_noaspectTime: ✅ 304.905µs (SLO: <500.000µs 📉 -39.0%) vs baseline: +0.4% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +5.4% ✅ index_aspectTime: ✅ 125.545µs (SLO: <300.000µs 📉 -58.2%) vs baseline: +2.4% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.1% ✅ index_noaspectTime: ✅ 40.245µs (SLO: <300.000µs 📉 -86.6%) vs baseline: -0.2% Memory: ✅ 43.037MB (SLO: <46.000MB -6.4%) vs baseline: +5.1% ✅ join_aspectTime: ✅ 214.152µs (SLO: <300.000µs 📉 -28.6%) vs baseline: -0.9% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.8% ✅ join_noaspectTime: ✅ 140.701µs (SLO: <300.000µs 📉 -53.1%) vs baseline: -2.7% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9% ✅ ljust_aspectTime: ✅ 606.453µs (SLO: <700.000µs 📉 -13.4%) vs baseline: 📈 +21.5% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.7% ✅ ljust_noaspectTime: ✅ 257.185µs (SLO: <300.000µs 📉 -14.3%) vs baseline: +2.2% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +4.7% ✅ lower_aspectTime: ✅ 295.781µs (SLO: <500.000µs 📉 -40.8%) vs baseline: -1.6% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +5.0% ✅ lower_noaspectTime: ✅ 236.217µs (SLO: <300.000µs 📉 -21.3%) vs baseline: +1.4% Memory: ✅ 43.175MB (SLO: <46.000MB -6.1%) vs baseline: +5.4% ✅ lstrip_aspectTime: ✅ 0.280ms (SLO: <3.000ms 📉 -90.7%) vs baseline: +0.3% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.7% ✅ lstrip_noaspectTime: ✅ 0.180ms (SLO: <3.000ms 📉 -94.0%) vs baseline: -0.7% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.7% ✅ modulo_aspectTime: ✅ 14.332ms (SLO: <18.750ms 📉 -23.6%) vs baseline: -0.2% Memory: ✅ 43.077MB (SLO: <46.000MB -6.4%) vs baseline: +4.9% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 14.803ms (SLO: <19.350ms 📉 -23.5%) vs baseline: -0.2% Memory: ✅ 43.096MB (SLO: <46.000MB -6.3%) vs baseline: +5.0% ✅ modulo_aspect_for_bytesTime: ✅ 14.424ms (SLO: <18.900ms 📉 -23.7%) vs baseline: +0.1% Memory: ✅ 43.175MB (SLO: <46.000MB -6.1%) vs baseline: +5.1% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 14.637ms (SLO: <19.150ms 📉 -23.6%) vs baseline: -0.2% Memory: ✅ 43.175MB (SLO: <46.000MB -6.1%) vs baseline: +5.3% ✅ modulo_noaspectTime: ✅ 0.359ms (SLO: <3.000ms 📉 -88.0%) vs baseline: +0.6% Memory: ✅ 43.136MB (SLO: <46.000MB -6.2%) vs baseline: +5.3% ✅ replace_aspectTime: ✅ 18.429ms (SLO: <24.000ms 📉 -23.2%) vs baseline: ~same Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +4.7% ✅ replace_noaspectTime: ✅ 279.907µs (SLO: <300.000µs -6.7%) vs baseline: -2.0% Memory: ✅ 43.096MB (SLO: <46.000MB -6.3%) vs baseline: +5.2% ✅ repr_aspectTime: ✅ 316.207µs (SLO: <420.000µs 📉 -24.7%) vs baseline: -2.2% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +4.8% ✅ repr_noaspectTime: ✅ 46.613µs (SLO: <90.000µs 📉 -48.2%) vs baseline: -0.5% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +5.3% ✅ rstrip_aspectTime: ✅ 392.030µs (SLO: <500.000µs 📉 -21.6%) vs baseline: -1.0% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.6% ✅ rstrip_noaspectTime: ✅ 185.719µs (SLO: <300.000µs 📉 -38.1%) vs baseline: +2.1% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ slice_aspectTime: ✅ 184.885µs (SLO: <300.000µs 📉 -38.4%) vs baseline: -1.1% Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.5% ✅ slice_noaspectTime: ✅ 54.038µs (SLO: <90.000µs 📉 -40.0%) vs baseline: -0.7% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +5.0% ✅ stringio_aspectTime: ✅ 4.525ms (SLO: <5.000ms -9.5%) vs baseline: 📈 +16.0% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +4.9% ✅ stringio_noaspectTime: ✅ 353.750µs (SLO: <500.000µs 📉 -29.3%) vs baseline: +1.3% Memory: ✅ 43.037MB (SLO: <46.000MB -6.4%) vs baseline: +5.0% ✅ strip_aspectTime: ✅ 275.850µs (SLO: <350.000µs 📉 -21.2%) vs baseline: -0.8% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +5.0% ✅ strip_noaspectTime: ✅ 177.533µs (SLO: <240.000µs 📉 -26.0%) vs baseline: -1.2% Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8% ✅ swapcase_aspectTime: ✅ 346.190µs (SLO: <500.000µs 📉 -30.8%) vs baseline: +3.8% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.7% ✅ swapcase_noaspectTime: ✅ 281.919µs (SLO: <400.000µs 📉 -29.5%) vs baseline: +2.3% Memory: ✅ 43.077MB (SLO: <46.000MB -6.4%) vs baseline: +5.0% ✅ title_aspectTime: ✅ 324.971µs (SLO: <500.000µs 📉 -35.0%) vs baseline: -0.1% Memory: ✅ 43.096MB (SLO: <46.000MB -6.3%) vs baseline: +5.3% ✅ title_noaspectTime: ✅ 266.898µs (SLO: <400.000µs 📉 -33.3%) vs baseline: +4.2% Memory: ✅ 43.136MB (SLO: <46.000MB -6.2%) vs baseline: +5.1% ✅ translate_aspectTime: ✅ 502.933µs (SLO: <700.000µs 📉 -28.2%) vs baseline: +3.4% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.1% ✅ translate_noaspectTime: ✅ 427.189µs (SLO: <500.000µs 📉 -14.6%) vs baseline: +1.4% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.1% ✅ upper_aspectTime: ✅ 296.690µs (SLO: <500.000µs 📉 -40.7%) vs baseline: +0.5% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +4.9% ✅ upper_noaspectTime: ✅ 239.650µs (SLO: <400.000µs 📉 -40.1%) vs baseline: +3.4% Memory: ✅ 43.155MB (SLO: <46.000MB -6.2%) vs baseline: +5.3% 📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 511.797µs (SLO: <700.000µs 📉 -26.9%) vs baseline: 📈 +20.7% Memory: ✅ 43.037MB (SLO: <46.000MB -6.4%) vs baseline: +5.1% ✅ ospathbasename_noaspectTime: ✅ 426.734µs (SLO: <700.000µs 📉 -39.0%) vs baseline: -2.3% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.2% ✅ ospathjoin_aspectTime: ✅ 623.327µs (SLO: <700.000µs 📉 -11.0%) vs baseline: +0.3% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ ospathjoin_noaspectTime: ✅ 624.634µs (SLO: <700.000µs 📉 -10.8%) vs baseline: -0.3% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.7% ✅ ospathnormcase_aspectTime: ✅ 352.434µs (SLO: <700.000µs 📉 -49.7%) vs baseline: -1.7% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +4.9% ✅ ospathnormcase_noaspectTime: ✅ 360.013µs (SLO: <700.000µs 📉 -48.6%) vs baseline: -1.8% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.2% ✅ ospathsplit_aspectTime: ✅ 494.589µs (SLO: <700.000µs 📉 -29.3%) vs baseline: +0.3% Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.5% ✅ ospathsplit_noaspectTime: ✅ 500.834µs (SLO: <700.000µs 📉 -28.5%) vs baseline: +0.1% Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.6% ✅ ospathsplitdrive_aspectTime: ✅ 375.251µs (SLO: <700.000µs 📉 -46.4%) vs baseline: -0.6% Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0% ✅ ospathsplitdrive_noaspectTime: ✅ 72.573µs (SLO: <700.000µs 📉 -89.6%) vs baseline: -0.5% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +4.6% ✅ ospathsplitext_aspectTime: ✅ 460.644µs (SLO: <700.000µs 📉 -34.2%) vs baseline: -0.7% Memory: ✅ 43.037MB (SLO: <46.000MB -6.4%) vs baseline: +5.3% ✅ ospathsplitext_noaspectTime: ✅ 466.437µs (SLO: <700.000µs 📉 -33.4%) vs baseline: -0.2% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +5.2% 📈 iastaspectssplit - 12/12✅ rsplit_aspectTime: ✅ 169.160µs (SLO: <250.000µs 📉 -32.3%) vs baseline: 📈 +14.1% Memory: ✅ 43.077MB (SLO: <46.000MB -6.4%) vs baseline: +5.7% ✅ rsplit_noaspectTime: ✅ 166.568µs (SLO: <250.000µs 📉 -33.4%) vs baseline: +8.2% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +5.4% ✅ split_aspectTime: ✅ 151.020µs (SLO: <250.000µs 📉 -39.6%) vs baseline: +4.2% Memory: ✅ 43.116MB (SLO: <46.000MB -6.3%) vs baseline: +5.9% ✅ split_noaspectTime: ✅ 165.794µs (SLO: <250.000µs 📉 -33.7%) vs baseline: 📈 +11.0% Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +5.7% ✅ splitlines_aspectTime: ✅ 151.303µs (SLO: <250.000µs 📉 -39.5%) vs baseline: +3.0% Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +5.2% ✅ splitlines_noaspectTime: ✅ 159.817µs (SLO: <250.000µs 📉 -36.1%) vs baseline: +6.8% Memory: ✅ 43.057MB (SLO: <46.000MB -6.4%) vs baseline: +6.0% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.516µs (SLO: <20.000µs 📉 -82.4%) vs baseline: 📈 +22.4% Memory: ✅ 35.547MB (SLO: <38.000MB -6.5%) vs baseline: +4.8% ✅ 1-count-metrics-100-timesTime: ✅ 204.685µs (SLO: <220.000µs -7.0%) vs baseline: +3.1% Memory: ✅ 35.606MB (SLO: <38.000MB -6.3%) vs baseline: +5.2% ✅ 1-distribution-metric-1-timesTime: ✅ 3.336µs (SLO: <20.000µs 📉 -83.3%) vs baseline: +4.8% Memory: ✅ 35.527MB (SLO: <38.000MB -6.5%) vs baseline: +4.9% ✅ 1-distribution-metrics-100-timesTime: ✅ 219.142µs (SLO: <230.000µs -4.7%) vs baseline: +2.7% Memory: ✅ 35.566MB (SLO: <38.000MB -6.4%) vs baseline: +4.7% ✅ 1-gauge-metric-1-timesTime: ✅ 2.185µs (SLO: <20.000µs 📉 -89.1%) vs baseline: +1.2% Memory: ✅ 35.566MB (SLO: <38.000MB -6.4%) vs baseline: +5.0% ✅ 1-gauge-metrics-100-timesTime: ✅ 136.279µs (SLO: <150.000µs -9.1%) vs baseline: -1.2% Memory: ✅ 35.527MB (SLO: <38.000MB -6.5%) vs baseline: +4.7% ✅ 1-rate-metric-1-timesTime: ✅ 3.153µs (SLO: <20.000µs 📉 -84.2%) vs baseline: +4.8% Memory: ✅ 35.468MB (SLO: <38.000MB -6.7%) vs baseline: +4.8% ✅ 1-rate-metrics-100-timesTime: ✅ 218.892µs (SLO: <250.000µs 📉 -12.4%) vs baseline: +3.5% Memory: ✅ 35.547MB (SLO: <38.000MB -6.5%) vs baseline: +4.8% ✅ 100-count-metrics-100-timesTime: ✅ 20.751ms (SLO: <22.000ms -5.7%) vs baseline: +4.4% Memory: ✅ 35.606MB (SLO: <38.000MB -6.3%) vs baseline: +5.1% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.288ms (SLO: <2.550ms 📉 -10.3%) vs baseline: +2.2% Memory: ✅ 35.704MB (SLO: <38.000MB -6.0%) vs baseline: +5.3% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.417ms (SLO: <1.550ms -8.6%) vs baseline: +0.7% Memory: ✅ 35.586MB (SLO: <38.000MB -6.4%) vs baseline: +4.9% ✅ 100-rate-metrics-100-timesTime: ✅ 2.247ms (SLO: <2.550ms 📉 -11.9%) vs baseline: +2.9% Memory: ✅ 35.566MB (SLO: <38.000MB -6.4%) vs baseline: +5.0% ✅ flush-1-metricTime: ✅ 4.600µs (SLO: <20.000µs 📉 -77.0%) vs baseline: +2.2% Memory: ✅ 35.625MB (SLO: <38.000MB -6.2%) vs baseline: +4.9% ✅ flush-100-metricsTime: ✅ 174.198µs (SLO: <250.000µs 📉 -30.3%) vs baseline: -0.8% Memory: ✅ 35.704MB (SLO: <38.000MB -6.0%) vs baseline: +5.1% ✅ flush-1000-metricsTime: ✅ 2.188ms (SLO: <2.500ms 📉 -12.5%) vs baseline: +0.4% Memory: ✅ 36.353MB (SLO: <38.750MB -6.2%) vs baseline: +4.9%
|
Description
This change extends the "suitespec" test-selection mechanism to include microbenchmarks. This eliminates wasted CPU cycles on pull requests that affect only a well-defined subset of the library code.
Testing
See the microbenchmark runs on this pull request #16352
Risks
It's possible that my changes here could cause microbenchmarks or existing test suites not to run when they should. This risk is mitigated by the fact that test skipping is not applied on the main branch.