# 2025-04-14 Triage Log
Relatively small changes this week, nothing terribly impactful (positive or negative).
Triage done by **@simulacrum**.
Revision range: [e643f59f..15f58c46](https://perf.rust-lang.org/?start=e643f59f6da3a84f43e75dea99afaa5b041ea6bf&end=15f58c46da79399961a09db0c650a2f90f442e6b&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | 0.7% | [0.1%, 2.1%] | 39 |
| Regressions ❌
(secondary) | 0.8% | [0.2%, 3.2%] | 23 |
| Improvements ✅
(primary) | -0.6% | [-0.9%, -0.3%] | 7 |
| Improvements ✅
(secondary) | -0.6% | [-1.5%, -0.1%] | 40 |
| All ❌✅ (primary) | 0.5% | [-0.9%, 2.1%] | 46 |
1 Regressions, 3 Improvements, 3 Mixed; 2 of them in rollups
35 artifact comparisons made in total
#### Regressions
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)
| (instructions:u) | mean | range | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌
(primary) | 1.1% | [0.5%, 2.1%] | 15 |
| Regressions ❌
(secondary) | 1.0% | [0.3%, 2.4%] | 3 |
| Improvements ✅
(primary) | - | - | 0 |
| Improvements ✅
(secondary) | - | - | 0 |
| All ❌✅ (primary) | 1.1% | [0.5%, 2.1%] | 15 |
Real regression, though limited only to doc builds. Investigating root cause in PR.
#### Improvements
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)
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | 0.8% | [0.8%, 0.8%] | 1 |
| Regressions ❌
(secondary) | - | - | 0 |
| Improvements ✅
(primary) | -0.3% | [-1.2%, -0.1%] | 35 |
| Improvements ✅
(secondary) | -0.3% | [-0.8%, -0.2%] | 46 |
| All ❌✅ (primary) | -0.3% | [-1.2%, 0.8%] | 36 |
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)
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | - | - | 0 |
| Regressions ❌
(secondary) | 0.5% | [0.5%, 0.5%] | 1 |
| Improvements ✅
(primary) | -0.3% | [-0.3%, -0.2%] | 4 |
| Improvements ✅
(secondary) | -0.3% | [-0.6%, -0.2%] | 26 |
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 4 |
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)
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | - | - | 0 |
| Regressions ❌
(secondary) | - | - | 0 |
| Improvements ✅
(primary) | -1.2% | [-1.2%, -1.2%] | 1 |
| Improvements ✅
(secondary) | - | - | 0 |
| All ❌✅ (primary) | -1.2% | [-1.2%, -1.2%] | 1 |
#### Mixed
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)
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | 0.7% | [0.7%, 0.7%] | 1 |
| Regressions ❌
(secondary) | 0.7% | [0.7%, 0.7%] | 1 |
| Improvements ✅
(primary) | -0.6% | [-0.6%, -0.6%] | 1 |
| Improvements ✅
(secondary) | -0.6% | [-0.9%, -0.2%] | 10 |
| All ❌✅ (primary) | 0.0% | [-0.6%, 0.7%] | 2 |
Regressions look plausibly real, but are limited (~2 scenarios) and outweighed
by benefits. No further investigation warranted.
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)
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | 0.7% | [0.4%, 1.7%] | 5 |
| Regressions ❌
(secondary) | - | - | 0 |
| Improvements ✅
(primary) | -0.7% | [-1.1%, -0.3%] | 9 |
| Improvements ✅
(secondary) | - | - | 0 |
| All ❌✅ (primary) | -0.2% | [-1.1%, 1.7%] | 14 |
Correctness improvement. Regressions look real, though limited to just a few
scenarios, and correctness is more important. No further investigation warranted.
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)
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | 1.0% | [0.3%, 2.1%] | 11 |
| Regressions ❌
(secondary) | - | - | 0 |
| Improvements ✅
(primary) | -0.5% | [-1.4%, -0.2%] | 48 |
| Improvements ✅
(secondary) | -1.0% | [-2.4%, -0.3%] | 36 |
| All ❌✅ (primary) | -0.2% | [-1.4%, 2.1%] | 59 |
Overall improvements outweigh limited regressions. Marking as triaged.