Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 164 additions & 0 deletions triage/2025/2025-11-10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
# 2025-11-11 Triage Log

Mostly quiet week, with the majority of changes coming from the standard
library work towards removal of Copy specialization
([#135634](https://github.com/rust-lang/rust/pull/135634)).

Triage done by **@simulacrum**.
Revision range: [35ebdf9b..055d0d6a](https://perf.rust-lang.org/?start=35ebdf9ba1414456dfe1cb6a6b13ebae80e99734&end=055d0d6aaf937cc11b3d2a5b5725972723b7f3c6&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.8% | [0.1%, 3.4%] | 144 |
| Regressions ❌ <br /> (secondary) | 0.8% | [0.1%, 2.1%] | 76 |
| Improvements ✅ <br /> (primary) | -0.7% | [-1.4%, -0.4%] | 12 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 9 |
| All ❌✅ (primary) | 0.7% | [-1.4%, 3.4%] | 156 |

3 Regressions, 1 Improvement, 7 Mixed; 3 of them in rollups
37 artifact comparisons made in total

#### Regressions

feat: Use annotate-snippets by default on nightly [#148188](https://github.com/rust-lang/rust/pull/148188) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=642c19bfc3a5c1de985bf5d0cc8207ac9d22708a&end=c5e283b0d209ee6f7cd1a8cbc1974927c547f3e6&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.8% | [0.3%, 2.9%] | 21 |
| Regressions ❌ <br /> (secondary) | 0.4% | [0.2%, 0.6%] | 6 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.0% | [-0.0%, -0.0%] | 1 |
| All ❌✅ (primary) | 0.8% | [0.3%, 2.9%] | 21 |

Likely some opportunity for improvements in annotate-snippets, but not
particularly large or widespresad regressions in our suite.

mgca: Add ConstArg representation for const items [#139558](https://github.com/rust-lang/rust/pull/139558) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fb23dd3c6b120f0d2e55e5f2c69a464df7b35fdf&end=72b21e1a64dbbbb3b59ac7ce21363c366a894b79&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.5%] | 24 |
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 6 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | 0.2% | [0.1%, 0.5%] | 24 |

Required next step for `min_generic_const_args`, regressions are within range
to be acceptable.

Encode cfg trace, not its early counterpart to fix cross-crate `doc(auto_cfg)` [#148660](https://github.com/rust-lang/rust/pull/148660) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=20f1c045c46aecba6a6aeda55fe6659b26871c87&end=ab67c37c6dbea849aa3425146bfe99fb1f1d117a&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.3%] | 10 |
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.3%] | 8 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | 0.2% | [0.1%, 0.3%] | 10 |

Bug fix. See <https://github.com/rust-lang/rust/pull/148660#issuecomment-3505481311> for details.

#### Improvements

Liveness: Cache the set of string constants for suggestions. [#147641](https://github.com/rust-lang/rust/pull/147641) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0bbef557bb02e6fda8fde2c2cf9c59ee55ca40e9&end=96064126a086a8428d66e07fb3b91421bb86a512&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.9% | [-1.4%, -0.5%] | 4 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | -0.9% | [-1.4%, -0.5%] | 4 |


#### Mixed

Revert "unicode_data refactors RUST-147622" [#148436](https://github.com/rust-lang/rust/pull/148436) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=35ebdf9ba1414456dfe1cb6a6b13ebae80e99734&end=f5711a55f5d5e2f942057d0f6d648dd2d8b2c37b&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 5 |
| Improvements ✅ <br /> (primary) | -0.8% | [-1.0%, -0.4%] | 3 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | -0.8% | [-1.0%, -0.4%] | 3 |

Nothing particularly interesting: "Performance-wish it's a wash, and this is a revert anyway."

Add LLVM range attributes to slice length parameters [#148350](https://github.com/rust-lang/rust/pull/148350) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1f880d9a1f4a331f1873829401e9d35fcfab2e36&end=20383c9f1d84eb9b9c6668a1668ef68a81eae274&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.7% | [0.1%, 2.0%] | 29 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.1%] | 6 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.7%, -0.1%] | 27 |
| All ❌✅ (primary) | -0.3% | [-0.5%, 0.2%] | 7 |

Primary benchmarks seeing mostly improvements. See more
[detailed analysis](https://github.com/rust-lang/rust/pull/148350#pullrequestreview-3411957024).

Rollup of 4 pull requests [#148472](https://github.com/rust-lang/rust/pull/148472) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=90b65889799733f21ebdf59d96411aa531c5900a&end=e5efc336720901420a8891dcdb67ca0a475dc03c&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 0.9%] | 8 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.6% | [-0.6%, -0.5%] | 3 |
| All ❌✅ (primary) | - | - | 0 |

My sense is that the large workspace crate is probably weakly (sparsely?)
bimodal given those results. Could be an interesting thing to dig into but not
particularly worthwhile here.

Rollup of 6 pull requests [#148507](https://github.com/rust-lang/rust/pull/148507) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c0ff72ffc4e88a2bbb69add95a4946d213996895&end=8e0b68e63cd2b7b6d18474fe6f49df6fb1570c25&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 2 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.9%, -0.1%] | 8 |
| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 1 |

Regressions look likely to be bimodality to me.

Add LLVM realtime sanitizer [#147935](https://github.com/rust-lang/rust/pull/147935) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bbb6f68e2888eea989337d558b47372ecf110e08&end=87f9dcd5e28a301fce81515bd4bea792444dcf29&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.1%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 5 |
| Improvements ✅ <br /> (primary) | -1.2% | [-1.2%, -1.2%] | 1 |
| Improvements ✅ <br /> (secondary) | -1.2% | [-1.2%, -1.2%] | 1 |
| All ❌✅ (primary) | -0.5% | [-1.2%, 0.1%] | 2 |

Regressions seem plausibly real, but the change doesn't seem likely to be
further tweakable to reduce them. Marking as triaged.

Rollup of 22 pull requests [#148721](https://github.com/rust-lang/rust/pull/148721) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=acda5e9f9aadac705b851935b14aa3d34a67d428&end=20f1c045c46aecba6a6aeda55fe6659b26871c87&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.8% | [0.8%, 0.8%] | 2 |
| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 0.3%] | 5 |
| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.1%] | 2 |
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.8%, -0.2%] | 2 |
| All ❌✅ (primary) | 0.3% | [-0.3%, 0.8%] | 4 |

Still searching for the cause of the regression.

stop specializing on `Copy` [#135634](https://github.com/rust-lang/rust/pull/135634) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a7b3715826827677ca8769eb88dc8052f43e734b&end=055d0d6aaf937cc11b3d2a5b5725972723b7f3c6&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.7% | [0.1%, 3.2%] | 110 |
| Regressions ❌ <br /> (secondary) | 0.8% | [0.1%, 1.8%] | 50 |
| Improvements ✅ <br /> (primary) | -0.9% | [-1.4%, -0.5%] | 2 |
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.1%] | 7 |
| All ❌✅ (primary) | 0.7% | [-1.4%, 3.2%] | 112 |

Expected widespread changes, this is largely a soundness fix.
Loading