|
| 1 | +# 2025-11-11 Triage Log |
| 2 | + |
| 3 | +Mostly quiet week, with the majority of changes coming from the standard |
| 4 | +library work towards removal of Copy specialization |
| 5 | +([#135634](https://github.com/rust-lang/rust/pull/135634)). |
| 6 | + |
| 7 | +Triage done by **@simulacrum**. |
| 8 | +Revision range: [35ebdf9b..055d0d6a](https://perf.rust-lang.org/?start=35ebdf9ba1414456dfe1cb6a6b13ebae80e99734&end=055d0d6aaf937cc11b3d2a5b5725972723b7f3c6&absolute=false&stat=instructions%3Au) |
| 9 | + |
| 10 | +**Summary**: |
| 11 | + |
| 12 | +| (instructions:u) | mean | range | count | |
| 13 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 14 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.1%, 3.4%] | 144 | |
| 15 | +| Regressions ❌ <br /> (secondary) | 0.8% | [0.1%, 2.1%] | 76 | |
| 16 | +| Improvements ✅ <br /> (primary) | -0.7% | [-1.4%, -0.4%] | 12 | |
| 17 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 9 | |
| 18 | +| All ❌✅ (primary) | 0.7% | [-1.4%, 3.4%] | 156 | |
| 19 | + |
| 20 | +4 Regressions, 1 Improvement, 8 Mixed; 3 of them in rollups |
| 21 | +37 artifact comparisons made in total |
| 22 | + |
| 23 | +#### Regressions |
| 24 | + |
| 25 | +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) |
| 26 | + |
| 27 | +| (instructions:u) | mean | range | count | |
| 28 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 29 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.3%, 2.9%] | 21 | |
| 30 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.2%, 0.6%] | 6 | |
| 31 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 32 | +| Improvements ✅ <br /> (secondary) | -0.0% | [-0.0%, -0.0%] | 1 | |
| 33 | +| All ❌✅ (primary) | 0.8% | [0.3%, 2.9%] | 21 | |
| 34 | + |
| 35 | +Likely some opportunity for improvements in annotate-snippets, but not |
| 36 | +particularly large or widespresad regressions in our suite. |
| 37 | + |
| 38 | +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) |
| 39 | + |
| 40 | +| (instructions:u) | mean | range | count | |
| 41 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 42 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.5%] | 24 | |
| 43 | +| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 6 | |
| 44 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 45 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 46 | +| All ❌✅ (primary) | 0.2% | [0.1%, 0.5%] | 24 | |
| 47 | + |
| 48 | +Required next step for `min_generic_const_args`, regressions are within range |
| 49 | +to be acceptable. |
| 50 | + |
| 51 | +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) |
| 52 | + |
| 53 | +| (instructions:u) | mean | range | count | |
| 54 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 55 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.3%] | 10 | |
| 56 | +| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.3%] | 8 | |
| 57 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 58 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 59 | +| All ❌✅ (primary) | 0.2% | [0.1%, 0.3%] | 10 | |
| 60 | + |
| 61 | +Bug fix. See <https://github.com/rust-lang/rust/pull/148660#issuecomment-3505481311> for details. |
| 62 | + |
| 63 | +#### Improvements |
| 64 | + |
| 65 | +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) |
| 66 | + |
| 67 | +| (instructions:u) | mean | range | count | |
| 68 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 69 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 70 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 71 | +| Improvements ✅ <br /> (primary) | -0.9% | [-1.4%, -0.5%] | 4 | |
| 72 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 73 | +| All ❌✅ (primary) | -0.9% | [-1.4%, -0.5%] | 4 | |
| 74 | + |
| 75 | + |
| 76 | +#### Mixed |
| 77 | + |
| 78 | +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) |
| 79 | + |
| 80 | +| (instructions:u) | mean | range | count | |
| 81 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 82 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 83 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 5 | |
| 84 | +| Improvements ✅ <br /> (primary) | -0.8% | [-1.0%, -0.4%] | 3 | |
| 85 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 86 | +| All ❌✅ (primary) | -0.8% | [-1.0%, -0.4%] | 3 | |
| 87 | + |
| 88 | +Nothing particularly interesting: "Performance-wish it's a wash, and this is a revert anyway." |
| 89 | + |
| 90 | +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) |
| 91 | + |
| 92 | +| (instructions:u) | mean | range | count | |
| 93 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 94 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 95 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.1%, 2.0%] | 29 | |
| 96 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.1%] | 6 | |
| 97 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.7%, -0.1%] | 27 | |
| 98 | +| All ❌✅ (primary) | -0.3% | [-0.5%, 0.2%] | 7 | |
| 99 | + |
| 100 | +Primary benchmarks seeing mostly improvements. See more |
| 101 | +[detailed analysis](https://github.com/rust-lang/rust/pull/148350#pullrequestreview-3411957024). |
| 102 | + |
| 103 | +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) |
| 104 | + |
| 105 | +| (instructions:u) | mean | range | count | |
| 106 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 107 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 108 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 0.9%] | 8 | |
| 109 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 110 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-0.6%, -0.5%] | 3 | |
| 111 | +| All ❌✅ (primary) | - | - | 0 | |
| 112 | + |
| 113 | +My sense is that the large workspace crate is probably weakly (sparsely?) |
| 114 | +bimodal given those results. Could be an interesting thing to dig into but not |
| 115 | +particularly worthwhile here. |
| 116 | + |
| 117 | +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) |
| 118 | + |
| 119 | +| (instructions:u) | mean | range | count | |
| 120 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 121 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 122 | +| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 2 | |
| 123 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 124 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.9%, -0.1%] | 8 | |
| 125 | +| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 126 | + |
| 127 | +Regressions look likely to be bimodality to me. |
| 128 | + |
| 129 | +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) |
| 130 | + |
| 131 | +| (instructions:u) | mean | range | count | |
| 132 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 133 | +| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.1%] | 1 | |
| 134 | +| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 5 | |
| 135 | +| Improvements ✅ <br /> (primary) | -1.2% | [-1.2%, -1.2%] | 1 | |
| 136 | +| Improvements ✅ <br /> (secondary) | -1.2% | [-1.2%, -1.2%] | 1 | |
| 137 | +| All ❌✅ (primary) | -0.5% | [-1.2%, 0.1%] | 2 | |
| 138 | + |
| 139 | +Regressions seem plausibly real, but the change doesn't seem likely to be |
| 140 | +further tweakable to reduce them. Marking as triaged. |
| 141 | + |
| 142 | +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) |
| 143 | + |
| 144 | +| (instructions:u) | mean | range | count | |
| 145 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 146 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.8%, 0.8%] | 2 | |
| 147 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 0.3%] | 5 | |
| 148 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.1%] | 2 | |
| 149 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.8%, -0.2%] | 2 | |
| 150 | +| All ❌✅ (primary) | 0.3% | [-0.3%, 0.8%] | 4 | |
| 151 | + |
| 152 | +Still searching for the cause of the regression. |
| 153 | + |
| 154 | +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) |
| 155 | + |
| 156 | +| (instructions:u) | mean | range | count | |
| 157 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 158 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.1%, 3.2%] | 110 | |
| 159 | +| Regressions ❌ <br /> (secondary) | 0.8% | [0.1%, 1.8%] | 50 | |
| 160 | +| Improvements ✅ <br /> (primary) | -0.9% | [-1.4%, -0.5%] | 2 | |
| 161 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.1%] | 7 | |
| 162 | +| All ❌✅ (primary) | 0.7% | [-1.4%, 3.2%] | 112 | |
| 163 | + |
| 164 | +Expected widespread changes, this is largely a soundness fix. |
0 commit comments