|
| 1 | +# 2025-11-03 Triage Log |
| 2 | + |
| 3 | +Mostly positive week. We saw a great performance win implemented by [#148040](https://github.com/rust-lang/rust/pull/148040) and [#148182](https://github.com/rust-lang/rust/pull/148182), which optimizes crates with a lot of trivial constants. |
| 4 | + |
| 5 | +Triage done by **@kobzol**. |
| 6 | +Revision range: [23fced0f..35ebdf9b](https://perf.rust-lang.org/?start=23fced0fcc5e0ec260d25f04a8b78b269e5e90f0&end=35ebdf9ba1414456dfe1cb6a6b13ebae80e99734&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +**Summary**: |
| 9 | + |
| 10 | +| (instructions:u) | mean | range | count | |
| 11 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 12 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.1%, 2.9%] | 22 | |
| 13 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.7%] | 48 | |
| 14 | +| Improvements ✅ <br /> (primary) | -2.8% | [-16.4%, -0.1%] | 102 | |
| 15 | +| Improvements ✅ <br /> (secondary) | -1.9% | [-8.0%, -0.1%] | 51 | |
| 16 | +| All ❌✅ (primary) | -2.1% | [-16.4%, 2.9%] | 124 | |
| 17 | + |
| 18 | + |
| 19 | +4 Regressions, 6 Improvements, 7 Mixed; 7 of them in rollups |
| 20 | +36 artifact comparisons made in total |
| 21 | + |
| 22 | +#### Regressions |
| 23 | + |
| 24 | +Rollup of 14 pull requests [#148202](https://github.com/rust-lang/rust/pull/148202) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=df984edf44203c862e01b5a20c8092d5614d872e&end=c9537a94a6300a8292804829801f7724fb8a33f6&stat=instructions:u) |
| 25 | + |
| 26 | +| (instructions:u) | mean | range | count | |
| 27 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 28 | +| Regressions ❌ <br /> (primary) | 1.7% | [0.3%, 2.9%] | 9 | |
| 29 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.6%] | 10 | |
| 30 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 31 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 32 | +| All ❌✅ (primary) | 1.7% | [0.3%, 2.9%] | 9 | |
| 33 | + |
| 34 | +- The new solver regressions come from [#147840](https://github.com/rust-lang/rust/pull/). |
| 35 | +- The bulk of the regression comes from [#147185](https://github.com/rust-lang/rust/pull/147185). The changes trigger a lint in `syn`, which causes many more errors to be emitted, which caused the regressions. |
| 36 | +- Marked as triaged. |
| 37 | + |
| 38 | +Update cc-rs to 1.2.39 [#146186](https://github.com/rust-lang/rust/pull/146186) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c9537a94a6300a8292804829801f7724fb8a33f6&end=bc1d7273dfbc6f8a11c0086fa35f6748a13e8d3c&stat=instructions:u) |
| 39 | + |
| 40 | +| (instructions:u) | mean | range | count | |
| 41 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 42 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.3%, 3.7%] | 259 | |
| 43 | +| Regressions ❌ <br /> (secondary) | 0.9% | [0.0%, 3.0%] | 287 | |
| 44 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 45 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 46 | +| All ❌✅ (primary) | 0.7% | [0.3%, 3.7%] | 259 | |
| 47 | + |
| 48 | +- Unexpected regression from updating cc-rs, perhaps because it stopped passing `-flto` to `jemalloc`. |
| 49 | +- Reverted in https://github.com/rust-lang/rust/pull/148298. |
| 50 | + |
| 51 | +Rollup of 5 pull requests [#148241](https://github.com/rust-lang/rust/pull/148241) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4146079cee94242771864147e32fb5d9adbd34f8&end=c6d42d774d1edfb270b8faaefacc67c213b0260b&stat=instructions:u) |
| 52 | + |
| 53 | +| (instructions:u) | mean | range | count | |
| 54 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 55 | +| Regressions ❌ <br /> (primary) | 3.1% | [3.1%, 3.1%] | 1 | |
| 56 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 57 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 58 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 59 | +| All ❌✅ (primary) | 3.1% | [3.1%, 3.1%] | 1 | |
| 60 | + |
| 61 | +- Noise. |
| 62 | +- Already marked as triaged. |
| 63 | + |
| 64 | +compiletest: rename `add-core-stubs`/`core-stubs-compile-flags` to `add-minicore`/`minicore-compile-flags` [#148305](https://github.com/rust-lang/rust/pull/148305) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8483293b3b4eb209e8e8bd0d069e61de790018a8&end=b15a874aafe7eab9ea3ac2c1d59c7b03e1425027&stat=instructions:u) |
| 65 | + |
| 66 | +| (instructions:u) | mean | range | count | |
| 67 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 68 | +| Regressions ❌ <br /> (primary) | 3.1% | [3.1%, 3.1%] | 1 | |
| 69 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 1 | |
| 70 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 71 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 72 | +| All ❌✅ (primary) | 3.1% | [3.1%, 3.1%] | 1 | |
| 73 | + |
| 74 | +- Noise. |
| 75 | +- Marked as triaged. |
| 76 | + |
| 77 | +#### Improvements |
| 78 | + |
| 79 | +Rollup of 4 pull requests [#148245](https://github.com/rust-lang/rust/pull/148245) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c6d42d774d1edfb270b8faaefacc67c213b0260b&end=292db4a13ce3f329579a581b424c6cec3b1cbd2b&stat=instructions:u) |
| 80 | + |
| 81 | +| (instructions:u) | mean | range | count | |
| 82 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 83 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 84 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 85 | +| Improvements ✅ <br /> (primary) | -2.9% | [-2.9%, -2.9%] | 1 | |
| 86 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 87 | +| All ❌✅ (primary) | -2.9% | [-2.9%, -2.9%] | 1 | |
| 88 | + |
| 89 | + |
| 90 | +Move wasm `throw` intrinsic back to `unwind` [#148291](https://github.com/rust-lang/rust/pull/148291) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6906167e01fba6f702f123264653f8e401546731&end=8205e6b75ec656305ac235d4726d2c7a1ddcef14&stat=instructions:u) |
| 91 | + |
| 92 | +| (instructions:u) | mean | range | count | |
| 93 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 94 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 95 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 96 | +| Improvements ✅ <br /> (primary) | -3.0% | [-3.0%, -3.0%] | 1 | |
| 97 | +| Improvements ✅ <br /> (secondary) | -0.8% | [-0.8%, -0.8%] | 1 | |
| 98 | +| All ❌✅ (primary) | -3.0% | [-3.0%, -3.0%] | 1 | |
| 99 | + |
| 100 | + |
| 101 | +Revert "Update cc-rs to 1.2.39 #146186" [#148298](https://github.com/rust-lang/rust/pull/148298) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d5419f1e97b90741d51841f800d3c697c662567d&end=ab4960e680b07600ec90a8736f936df371bc7cf3&stat=instructions:u) |
| 102 | + |
| 103 | +| (instructions:u) | mean | range | count | |
| 104 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 105 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 106 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 107 | +| Improvements ✅ <br /> (primary) | -0.7% | [-3.6%, -0.3%] | 251 | |
| 108 | +| Improvements ✅ <br /> (secondary) | -0.9% | [-2.9%, -0.0%] | 288 | |
| 109 | +| All ❌✅ (primary) | -0.7% | [-3.6%, -0.3%] | 251 | |
| 110 | + |
| 111 | + |
| 112 | +Adjust successor iterators. [#148157](https://github.com/rust-lang/rust/pull/148157) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=647f1536d2f50b203ca9a67396225c4f7771e1c8&end=23c7bad921fb7163de37ea680bed317deaa03fda&stat=instructions:u) |
| 113 | + |
| 114 | +| (instructions:u) | mean | range | count | |
| 115 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 116 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 117 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 118 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.4%, -0.1%] | 19 | |
| 119 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.4%, -0.0%] | 21 | |
| 120 | +| All ❌✅ (primary) | -0.2% | [-0.4%, -0.1%] | 19 | |
| 121 | + |
| 122 | + |
| 123 | +Rollup of 10 pull requests [#148356](https://github.com/rust-lang/rust/pull/148356) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d85276b256a8ab18e03b6394b4f7a7b246176db7&end=fca2e941f86f51cd3c3254518f45e2145563f6be&stat=instructions:u) |
| 124 | + |
| 125 | +| (instructions:u) | mean | range | count | |
| 126 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 127 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 128 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 129 | +| Improvements ✅ <br /> (primary) | -3.0% | [-3.0%, -3.0%] | 1 | |
| 130 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-1.0%, -0.1%] | 10 | |
| 131 | +| All ❌✅ (primary) | -3.0% | [-3.0%, -3.0%] | 1 | |
| 132 | + |
| 133 | + |
| 134 | +Rollup of 7 pull requests [#148412](https://github.com/rust-lang/rust/pull/148412) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b15a874aafe7eab9ea3ac2c1d59c7b03e1425027&end=c5dabe8cf798123087d094f06417f5a767ca73e8&stat=instructions:u) |
| 135 | + |
| 136 | +| (instructions:u) | mean | range | count | |
| 137 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 138 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 139 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 140 | +| Improvements ✅ <br /> (primary) | -2.8% | [-2.8%, -2.8%] | 1 | |
| 141 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 142 | +| All ❌✅ (primary) | -2.8% | [-2.8%, -2.8%] | 1 | |
| 143 | + |
| 144 | + |
| 145 | +#### Mixed |
| 146 | + |
| 147 | +Add a fast path for lowering trivial consts [#148040](https://github.com/rust-lang/rust/pull/148040) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=34a8c7368c84fc699fc83a8851a02f93fd655931&end=4b53279854fcc60b063398181f5dc13ddc319cb8&stat=instructions:u) |
| 148 | + |
| 149 | +| (instructions:u) | mean | range | count | |
| 150 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 151 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 14 | |
| 152 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.0%, 2.1%] | 36 | |
| 153 | +| Improvements ✅ <br /> (primary) | -3.7% | [-15.5%, -0.1%] | 71 | |
| 154 | +| Improvements ✅ <br /> (secondary) | -4.0% | [-8.2%, -0.0%] | 22 | |
| 155 | +| All ❌✅ (primary) | -3.0% | [-15.5%, 0.4%] | 85 | |
| 156 | + |
| 157 | +- Improvements greatly outweigh regressions. |
| 158 | +- Marked as triaged. |
| 159 | + |
| 160 | +Skip codegen_crate call in check mode [#148035](https://github.com/rust-lang/rust/pull/148035) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9ea8d67cc60e88ad6fffbf299a454c44227e001c&end=adaa838976ff99a4f0661136322f64cb466b58a0&stat=instructions:u) |
| 161 | + |
| 162 | +| (instructions:u) | mean | range | count | |
| 163 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 164 | +| Regressions ❌ <br /> (primary) | 1.2% | [1.2%, 1.2%] | 1 | |
| 165 | +| Regressions ❌ <br /> (secondary) | 1.2% | [1.2%, 1.2%] | 1 | |
| 166 | +| Improvements ✅ <br /> (primary) | -0.8% | [-0.8%, -0.8%] | 3 | |
| 167 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.7%, -0.2%] | 11 | |
| 168 | +| All ❌✅ (primary) | -0.3% | [-0.8%, 1.2%] | 4 | |
| 169 | + |
| 170 | +- The `syn` regression is noise. |
| 171 | +- Already marked as triaged. |
| 172 | + |
| 173 | +Accept trivial consts based on trivial consts [#148182](https://github.com/rust-lang/rust/pull/148182) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=278a90913daf7707791020a592d722dd7971f196&end=044d68c3cb6a0b893b18293fa7f5719119403215&stat=instructions:u) |
| 174 | + |
| 175 | +| (instructions:u) | mean | range | count | |
| 176 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 177 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 178 | +| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 2 | |
| 179 | +| Improvements ✅ <br /> (primary) | -0.7% | [-1.1%, -0.2%] | 13 | |
| 180 | +| Improvements ✅ <br /> (secondary) | -1.4% | [-1.4%, -1.4%] | 1 | |
| 181 | +| All ❌✅ (primary) | -0.7% | [-1.1%, -0.2%] | 13 | |
| 182 | + |
| 183 | +- Tiny regression on a secondary benchmark, improvements outweigh regressions. |
| 184 | +- Marked as triaged. |
| 185 | + |
| 186 | +Remove `QPath::LangItem` [#148193](https://github.com/rust-lang/rust/pull/148193) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=72fe2ffb391f397efdfafb2216028ed9952e8078&end=6906167e01fba6f702f123264653f8e401546731&stat=instructions:u) |
| 187 | + |
| 188 | +| (instructions:u) | mean | range | count | |
| 189 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 190 | +| Regressions ❌ <br /> (primary) | 1.1% | [0.2%, 2.9%] | 3 | |
| 191 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 1.3%] | 21 | |
| 192 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.4%, -0.1%] | 18 | |
| 193 | +| Improvements ✅ <br /> (secondary) | -0.1% | [-0.2%, -0.0%] | 2 | |
| 194 | +| All ❌✅ (primary) | -0.0% | [-0.4%, 2.9%] | 21 | |
| 195 | + |
| 196 | +- The single primary regression is noise, otherwise it's a few small wins on primary benchmarks and a few small losses on secondary ones. Overall a wash. And since this is compiler refactoring/cleanup, there's probably not that much to be done anyway. |
| 197 | +- Marked as triaged. |
| 198 | + |
| 199 | +Rollup of 9 pull requests [#148337](https://github.com/rust-lang/rust/pull/148337) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=17e7324d44c7b310b776302880fdd08d9252118a&end=d85276b256a8ab18e03b6394b4f7a7b246176db7&stat=instructions:u) |
| 200 | + |
| 201 | +| (instructions:u) | mean | range | count | |
| 202 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 203 | +| Regressions ❌ <br /> (primary) | 1.2% | [0.3%, 3.0%] | 5 | |
| 204 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 5 | |
| 205 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 206 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | |
| 207 | +| All ❌✅ (primary) | 1.2% | [0.3%, 3.0%] | 5 | |
| 208 | + |
| 209 | +- Small performance loss caused by [#147622](https://github.com/rust-lang/rust/pull/147622), which was reverted in [#148436](https://github.com/rust-lang/rust/pull/148436). |
| 210 | +- Marked as triaged. |
| 211 | + |
| 212 | +Rollup of 3 pull requests [#148425](https://github.com/rust-lang/rust/pull/148425) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7878a919448eb219b630d1866ca06c0d412483f2&end=f2bae990e89bf696e86706b524ac32ab72945438&stat=instructions:u) |
| 213 | + |
| 214 | +| (instructions:u) | mean | range | count | |
| 215 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 216 | +| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.2%] | 5 | |
| 217 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.2%] | 15 | |
| 218 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 219 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.2%] | 5 | |
| 220 | +| All ❌✅ (primary) | 0.1% | [0.1%, 0.2%] | 5 | |
| 221 | + |
| 222 | +- Tiny `doc` losses caused likely either by stdlib doc changes introduced by [#146260](https://github.com/rust-lang/rust/pull/146260) or [#148402](https://github.com/rust-lang/rust/pull/148402) or both. |
| 223 | +- Marked as triaged. |
| 224 | + |
| 225 | +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) |
| 226 | + |
| 227 | +| (instructions:u) | mean | range | count | |
| 228 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 229 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 230 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 5 | |
| 231 | +| Improvements ✅ <br /> (primary) | -0.8% | [-1.0%, -0.4%] | 3 | |
| 232 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 233 | +| All ❌✅ (primary) | -0.8% | [-1.0%, -0.4%] | 3 | |
| 234 | + |
| 235 | +- Performance-wish it's a wash, and this is a revert anyway. |
| 236 | +- Marked as triaged. |
0 commit comments