From 9b8f2853276d514c06cf3a7e1ade8ddfb9019c78 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Mon, 6 Apr 2026 08:18:58 -0400 Subject: [PATCH] Add perf triage for this week --- triage/2026/2026-04-05.md | 172 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 triage/2026/2026-04-05.md diff --git a/triage/2026/2026-04-05.md b/triage/2026/2026-04-05.md new file mode 100644 index 000000000..6ed63b6b9 --- /dev/null +++ b/triage/2026/2026-04-05.md @@ -0,0 +1,172 @@ +# 2026-04-05 Triage Log + +A shorter week than normal (probably due to later perf triage last week). +Overall fairly small changes scattered across various PRs, though the net +effect was slightly positive (-0.5% avg change). All changed ended up either +mixed or improvements this week. + +Triage done by **@simulacrum**. +Revision range: [cf7da0b7..e73c56ab](https://perf.rust-lang.org/?start=cf7da0b7277cad05b79f91b60c290aa08a17a6f0&end=e73c56abd0baf3dbaafbdc3ce6072a416aade867&absolute=false&stat=instructions%3Au) + +**Summary**: + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.4% | [0.4%, 0.4%] | 2 | +| Regressions ❌
(secondary) | 2.7% | [0.2%, 7.9%] | 47 | +| Improvements ✅
(primary) | -0.5% | [-1.6%, -0.1%] | 164 | +| Improvements ✅
(secondary) | -0.5% | [-1.9%, -0.1%] | 115 | +| All ❌✅ (primary) | -0.5% | [-1.6%, 0.4%] | 166 | + +0 Regressions, 3 Improvements, 8 Mixed; 5 of them in rollups +26 artifact comparisons made in total + +#### Regressions + +No regressions this week. + +#### Improvements + +Rollup of 4 pull requests [#154638](https://github.com/rust-lang/rust/pull/154638) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0e95a0f4c677002a5d4ac5bc59d97885e6f51f71&end=48cc71ee88cd0f11217eced958b9930970da998b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.3%, -0.2%] | 3 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | -0.2% | [-0.3%, -0.2%] | 3 | + + +Rollup of 5 pull requests [#154659](https://github.com/rust-lang/rust/pull/154659) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=12ab1cf1fd3dc925a846b0eb8a4b39393140fdd3&end=3ebe60c8c30d1175019dcbdb957441cd84aa1220&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.7% | [-1.1%, -0.2%] | 10 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | -0.7% | [-1.1%, -0.2%] | 10 | + + +Streamline `CachingSourceMapView` [#154614](https://github.com/rust-lang/rust/pull/154614) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=009a6c1e8b559de780be565937d83e8f4a36d58d&end=8931f23941cf9ec0093f86a81337873b288344c9&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.4% | [-0.7%, -0.1%] | 135 | +| Improvements ✅
(secondary) | -0.4% | [-1.4%, -0.1%] | 95 | +| All ❌✅ (primary) | -0.4% | [-0.7%, -0.1%] | 135 | + + +#### Mixed + +Properly generalize unevaluated consts [#154053](https://github.com/rust-lang/rust/pull/154053) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=08cd08fbef8c6663b052d8d9e4930d5696cbb8a7&end=37cfa179be19cec2236736521bed3ea3c4a1ec97&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.2% | [0.2%, 0.2%] | 3 | +| Improvements ✅
(primary) | -0.3% | [-0.3%, -0.3%] | 1 | +| Improvements ✅
(secondary) | -0.1% | [-0.2%, -0.0%] | 7 | +| All ❌✅ (primary) | -0.3% | [-0.3%, -0.3%] | 1 | + +Regressions are limited to new solver, and fairly small. Most likely no need to +investigate deeper, especially as this also fixes a few bugs. + +Rollup of 4 pull requests [#154668](https://github.com/rust-lang/rust/pull/154668) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3ebe60c8c30d1175019dcbdb957441cd84aa1220&end=2bd7a97871a74d4333bd3edb6564136167ac604b&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.2% | [0.1%, 0.4%] | 4 | +| Regressions ❌
(secondary) | 0.2% | [0.0%, 0.3%] | 14 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | -0.4% | [-1.1%, -0.0%] | 5 | +| All ❌✅ (primary) | 0.2% | [0.1%, 0.4%] | 4 | + +Most likely caused by extending integers with new methods in +[#154356](https://github.com/rust-lang/rust/pull/154356). Enqueued a build to +confirm that theory, see [comment](https://github.com/rust-lang/rust/pull/154356#issuecomment-4191902607). + +Don't use disk-cache for query `def_kind` [#154292](https://github.com/rust-lang/rust/pull/154292) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2bd7a97871a74d4333bd3edb6564136167ac604b&end=7e46c5f6fb87f8cf4353e058479cef15d1d952b4&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.3% | [0.0%, 1.1%] | 5 | +| Improvements ✅
(primary) | -0.3% | [-0.4%, -0.1%] | 62 | +| Improvements ✅
(secondary) | -0.4% | [-0.7%, -0.1%] | 28 | +| All ❌✅ (primary) | -0.3% | [-0.4%, -0.1%] | 62 | + +Not entirely clear but the instruction count regressions look like they may be +within noise threshold in practice. Improvements also clearly outweigh the +small regressions, so marking as triaged. + +Revert #151380 and #153869 [#154308](https://github.com/rust-lang/rust/pull/154308) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7e46c5f6fb87f8cf4353e058479cef15d1d952b4&end=009a6c1e8b559de780be565937d83e8f4a36d58d&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.3% | [0.1%, 0.5%] | 16 | +| Regressions ❌
(secondary) | 3.6% | [0.0%, 8.6%] | 36 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | -0.3% | [-1.1%, -0.0%] | 16 | +| All ❌✅ (primary) | 0.3% | [0.1%, 0.5%] | 16 | + +This reverts two improvements that landed in a previous week, so regressions are expected. This is ultimately a correctness fix. + +Revert "Fix: On wasm targets, call panic_in_cleanup if panic occurs in cleanup #151771" [#154700](https://github.com/rust-lang/rust/pull/154700) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8931f23941cf9ec0093f86a81337873b288344c9&end=e6b64a2f4c696b840f8a384ec28690eed6a5d267&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.2% | [0.0%, 0.3%] | 7 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | -0.1% | [-0.1%, -0.0%] | 2 | +| All ❌✅ (primary) | - | - | 0 | + +> revert, tiny changes, could be noise, the original PR didn't have these as +> positive results, marking as triaged as there's nothing much to do or +> investigate (until it relands and shows perf changes) + +(see https://github.com/rust-lang/rust/pull/154700#issuecomment-4176873246) + +Rollup of 20 pull requests [#154727](https://github.com/rust-lang/rust/pull/154727) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e6b64a2f4c696b840f8a384ec28690eed6a5d267&end=55e86c996809902e8bbad512cfb4d2c18be446d9&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.1% | [0.1%, 0.1%] | 1 | +| Improvements ✅
(primary) | -0.3% | [-0.3%, -0.1%] | 5 | +| Improvements ✅
(secondary) | - | - | 0 | +| All ❌✅ (primary) | -0.3% | [-0.3%, -0.1%] | 5 | + +Probably noise (at least the regression), either way not worth investigating further. + +Port lint attributes to attribute parser [#152369](https://github.com/rust-lang/rust/pull/152369) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f908263775fa86408d0d529dec82baa9ae350529&end=2972b5e59f1c5529b6ba770437812fd83ab4ebd4&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | 0.2% | [0.2%, 0.2%] | 1 | +| Regressions ❌
(secondary) | 0.3% | [0.2%, 0.5%] | 7 | +| Improvements ✅
(primary) | -0.3% | [-0.6%, -0.2%] | 20 | +| Improvements ✅
(secondary) | -0.4% | [-0.6%, -0.0%] | 37 | +| All ❌✅ (primary) | -0.3% | [-0.6%, 0.2%] | 21 | + +Perf wins significantly outweigh the regressions. + +Rollup of 5 pull requests [#154802](https://github.com/rust-lang/rust/pull/154802) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=981cf69479ded5e2de0cf9e16111c19d65be0369&end=0312a55fe4200208170b94bf287ca3cc7ea499ae&stat=instructions:u) + +| (instructions:u) | mean | range | count | +|:----------------------------------:|:-----:|:--------------:|:-----:| +| Regressions ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.2% | [0.0%, 0.4%] | 10 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(secondary) | -0.6% | [-1.6%, -0.0%] | 3 | +| All ❌✅ (primary) | - | - | 0 | + +Regression almost certainly due to +, that +perf run matches pretty closely what we see here. I don't think further +investigation is warranted, the affected benchmark intentionally stresses the +lint system (unused-warnings).