|
| 1 | +# 2025-04-14 Triage Log |
| 2 | + |
| 3 | +Relatively small changes this week, nothing terribly impactful (positive or negative). |
| 4 | + |
| 5 | +Triage done by **@simulacrum**. |
| 6 | +Revision range: [e643f59f..15f58c46](https://perf.rust-lang.org/?start=e643f59f6da3a84f43e75dea99afaa5b041ea6bf&end=15f58c46da79399961a09db0c650a2f90f442e6b&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +**Summary**: |
| 9 | + |
| 10 | +| (instructions:u) | mean | range | count | |
| 11 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 12 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.1%, 2.1%] | 39 | |
| 13 | +| Regressions ❌ <br /> (secondary) | 0.8% | [0.2%, 3.2%] | 23 | |
| 14 | +| Improvements ✅ <br /> (primary) | -0.6% | [-0.9%, -0.3%] | 7 | |
| 15 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-1.5%, -0.1%] | 40 | |
| 16 | +| All ❌✅ (primary) | 0.5% | [-0.9%, 2.1%] | 46 | |
| 17 | + |
| 18 | +1 Regressions, 3 Improvements, 3 Mixed; 2 of them in rollups |
| 19 | +35 artifact comparisons made in total |
| 20 | + |
| 21 | +#### Regressions |
| 22 | + |
| 23 | +Rollup of 10 pull requests [#139766](https://github.com/rust-lang/rust/pull/139766) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6e830462330a9e34d8176e86d4580dd0820c6fd5&end=15f58c46da79399961a09db0c650a2f90f442e6b&stat=instructions:u) |
| 24 | + |
| 25 | +| (instructions:u) | mean | range | count | |
| 26 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 27 | +| Regressions ❌ <br /> (primary) | 1.1% | [0.5%, 2.1%] | 15 | |
| 28 | +| Regressions ❌ <br /> (secondary) | 1.0% | [0.3%, 2.4%] | 3 | |
| 29 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 30 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 31 | +| All ❌✅ (primary) | 1.1% | [0.5%, 2.1%] | 15 | |
| 32 | + |
| 33 | +Real regression, though limited only to doc builds. Investigating root cause in PR. |
| 34 | + |
| 35 | +#### Improvements |
| 36 | + |
| 37 | +speed up `String::push` and `String::insert` [#124810](https://github.com/rust-lang/rust/pull/124810) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=48f89e7659678f91a68c0c2d868180a0036ab32d&end=934880f586f6ac1f952c7090e2a943fcd7775e7b&stat=instructions:u) |
| 38 | + |
| 39 | +| (instructions:u) | mean | range | count | |
| 40 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 41 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.8%, 0.8%] | 1 | |
| 42 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 43 | +| Improvements ✅ <br /> (primary) | -0.3% | [-1.2%, -0.1%] | 35 | |
| 44 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.8%, -0.2%] | 46 | |
| 45 | +| All ❌✅ (primary) | -0.3% | [-1.2%, 0.8%] | 36 | |
| 46 | + |
| 47 | + |
| 48 | +Rollup of 13 pull requests [#139622](https://github.com/rust-lang/rust/pull/139622) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7d7de5bf3c3cbf9c2c5bbc5cbfb9197a8a427d35&end=69b3959afec9b5468d5de15133b199553f6e55d2&stat=instructions:u) |
| 49 | + |
| 50 | +| (instructions:u) | mean | range | count | |
| 51 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 52 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 53 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.5%, 0.5%] | 1 | |
| 54 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.2%] | 4 | |
| 55 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.6%, -0.2%] | 26 | |
| 56 | +| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 4 | |
| 57 | + |
| 58 | + |
| 59 | +Polymorphize `array::IntoIter`'s iterator impl [#139430](https://github.com/rust-lang/rust/pull/139430) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d2b3dd7c173de58881ead8109f7970b9cd926e2a&end=1bc56185ee257ed829a0aea7abdc3b03c5fed887&stat=instructions:u) |
| 60 | + |
| 61 | +| (instructions:u) | mean | range | count | |
| 62 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 63 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 64 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 65 | +| Improvements ✅ <br /> (primary) | -1.2% | [-1.2%, -1.2%] | 1 | |
| 66 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 67 | +| All ❌✅ (primary) | -1.2% | [-1.2%, -1.2%] | 1 | |
| 68 | + |
| 69 | + |
| 70 | +#### Mixed |
| 71 | + |
| 72 | +Allow GVN to produce places and not just locals. [#139327](https://github.com/rust-lang/rust/pull/139327) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=97c966bb40756903f8aa13995629128d157f6056&end=f06e5c1e35bc5bc6131c6f8a0eb782097e3f28c3&stat=instructions:u) |
| 73 | + |
| 74 | +| (instructions:u) | mean | range | count | |
| 75 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 76 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 77 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.7%, 0.7%] | 1 | |
| 78 | +| Improvements ✅ <br /> (primary) | -0.6% | [-0.6%, -0.6%] | 1 | |
| 79 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-0.9%, -0.2%] | 10 | |
| 80 | +| All ❌✅ (primary) | 0.0% | [-0.6%, 0.7%] | 2 | |
| 81 | + |
| 82 | +Regressions look plausibly real, but are limited (~2 scenarios) and outweighed |
| 83 | +by benefits. No further investigation warranted. |
| 84 | + |
| 85 | +Ensure `swap_nonoverlapping` is really always untyped [#137412](https://github.com/rust-lang/rust/pull/137412) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2205455d444f5f9da3a52e50f43c0306480218fb&end=0fe8f3454dbe9dda52a254991347e96bec579a6f&stat=instructions:u) |
| 86 | + |
| 87 | +| (instructions:u) | mean | range | count | |
| 88 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 89 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.4%, 1.7%] | 5 | |
| 90 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 91 | +| Improvements ✅ <br /> (primary) | -0.7% | [-1.1%, -0.3%] | 9 | |
| 92 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 93 | +| All ❌✅ (primary) | -0.2% | [-1.1%, 1.7%] | 14 | |
| 94 | + |
| 95 | +Correctness improvement. Regressions look real, though limited to just a few |
| 96 | +scenarios, and correctness is more important. No further investigation warranted. |
| 97 | + |
| 98 | +Remove `Nonterminal` and `TokenKind::Interpolated` [#124141](https://github.com/rust-lang/rust/pull/124141) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=15f58c46da79399961a09db0c650a2f90f442e6b&end=f836ae4e663b6e8938096b8559e094d18361be55&stat=instructions:u) |
| 99 | + |
| 100 | +| (instructions:u) | mean | range | count | |
| 101 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 102 | +| Regressions ❌ <br /> (primary) | 1.0% | [0.3%, 2.1%] | 11 | |
| 103 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 104 | +| Improvements ✅ <br /> (primary) | -0.5% | [-1.4%, -0.2%] | 48 | |
| 105 | +| Improvements ✅ <br /> (secondary) | -1.0% | [-2.4%, -0.3%] | 36 | |
| 106 | +| All ❌✅ (primary) | -0.2% | [-1.4%, 2.1%] | 59 | |
| 107 | + |
| 108 | +Overall improvements outweigh limited regressions. Marking as triaged. |
0 commit comments