|
| 1 | +# 2023-09-05 Triage Log |
| 2 | + |
| 3 | +A lot of spurious noise this week from a few benchmarks (bitmaps-3.1.0, libc, |
| 4 | +and even cargo-0.60.0 at a few points). Beyond that, we had a few small |
| 5 | +improvements associated with the trait system and with parallel-rustc. |
| 6 | + |
| 7 | +Triage done by **@pnkfelix**. |
| 8 | +Revision range: [cedbe5c7..15e52b05](https://perf.rust-lang.org/?start=cedbe5c715c1fa9359683c5f108bed2054ac258b&end=15e52b05ca8f63e0da27c808680388717e5b997e&absolute=false&stat=instructions%3Au) |
| 9 | + |
| 10 | +**Summary**: |
| 11 | + |
| 12 | +| (instructions:u) | mean | range | count | |
| 13 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 14 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.2%, 1.2%] | 11 | |
| 15 | +| Regressions ❌ <br /> (secondary) | 1.0% | [0.2%, 2.0%] | 40 | |
| 16 | +| Improvements ✅ <br /> (primary) | -1.9% | [-10.2%, -0.3%] | 69 | |
| 17 | +| Improvements ✅ <br /> (secondary) | -1.5% | [-3.7%, -0.4%] | 26 | |
| 18 | +| All ❌✅ (primary) | -1.5% | [-10.2%, 1.2%] | 80 | |
| 19 | + |
| 20 | + |
| 21 | +4 Regressions, 7 Improvements, 8 Mixed; 2 of them in rollups |
| 22 | +66 artifact comparisons made in total |
| 23 | + |
| 24 | +#### Regressions |
| 25 | + |
| 26 | +Adapt table sizes to the contents, accommodating u64 rmeta offsets [#113542](https://github.com/rust-lang/rust/pull/113542) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6e8f677c6a20bee7025f6c0a93a7dc9daced92bc&end=d64c84562f634efde5eb5506942b6af293d8358d&stat=instructions:u) |
| 27 | + |
| 28 | +| (instructions:u) | mean | range | count | |
| 29 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 30 | +| Regressions ❌ <br /> (primary) | 0.5% | [0.2%, 1.2%] | 11 | |
| 31 | +| Regressions ❌ <br /> (secondary) | 0.8% | [0.2%, 1.3%] | 26 | |
| 32 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 33 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 34 | +| All ❌✅ (primary) | 0.5% | [0.2%, 1.2%] | 11 | |
| 35 | + |
| 36 | +* already marked as triaged. |
| 37 | + |
| 38 | +Use conditional synchronization for Lock [#111713](https://github.com/rust-lang/rust/pull/111713) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7659abc63d33223fa366c8781c81698e28a21e6c&end=61efe9d2981b87ec7f2800d62f98c594de151713&stat=instructions:u) |
| 39 | + |
| 40 | +| (instructions:u) | mean | range | count | |
| 41 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 42 | +| Regressions ❌ <br /> (primary) | 2.3% | [2.3%, 2.3%] | 1 | |
| 43 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 44 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 45 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 46 | +| All ❌✅ (primary) | 2.3% | [2.3%, 2.3%] | 1 | |
| 47 | + |
| 48 | +* the measured regression appears spurious |
| 49 | +* marked as triaged |
| 50 | + |
| 51 | +update Miri [#115496](https://github.com/rust-lang/rust/pull/115496) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7cc5ac267f536ee2cf2f38961d9db8304a419d5a&end=b89d7d6882532686fd90a89cec1a0fd386f0ade3&stat=instructions:u) |
| 52 | + |
| 53 | +| (instructions:u) | mean | range | count | |
| 54 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 55 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 4 | |
| 56 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.3%, 0.6%] | 5 | |
| 57 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 58 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 59 | +| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 4 | |
| 60 | + |
| 61 | +* believe to be spurious, marking as triaged |
| 62 | + |
| 63 | + |
| 64 | +Rollup of 5 pull requests [#115553](https://github.com/rust-lang/rust/pull/115553) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=626a6ab93fafd01b37b1e26c96cb6eec0d39f3eb&end=8cfaf70c320297dd1831a12351fcfeab7a231328&stat=instructions:u) |
| 65 | + |
| 66 | +| (instructions:u) | mean | range | count | |
| 67 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 68 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.8%] | 6 | |
| 69 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 70 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 71 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 72 | +| All ❌✅ (primary) | 0.7% | [0.7%, 0.8%] | 6 | |
| 73 | + |
| 74 | +* believe to be spurious, marking as triaged |
| 75 | + |
| 76 | +#### Improvements |
| 77 | + |
| 78 | +Don't record spans for predicates in coherence [#115392](https://github.com/rust-lang/rust/pull/115392) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b1b244da6527cf2ba36e88d02275f4c64a0c90d8&end=e51c5ea16f84ef811bf0aecbdc0ac48821d52cc9&stat=instructions:u) |
| 79 | + |
| 80 | +| (instructions:u) | mean | range | count | |
| 81 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 82 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 83 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 84 | +| Improvements ✅ <br /> (primary) | -1.1% | [-2.5%, -0.3%] | 18 | |
| 85 | +| Improvements ✅ <br /> (secondary) | -0.8% | [-1.0%, -0.2%] | 8 | |
| 86 | +| All ❌✅ (primary) | -1.1% | [-2.5%, -0.3%] | 18 | |
| 87 | + |
| 88 | +* undoes regression introduced by [PR 115392](https://github.com/rust-lang/rust/pull/115392) |
| 89 | + |
| 90 | +Use `OnceLock` for `SingleCache` [#115422](https://github.com/rust-lang/rust/pull/115422) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f9ba43ce147707fb90d038983789d8e57451eb6d&end=9dc11a13fa848c1b09b7248c540528190dcb79c5&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) | -0.4% | [-0.4%, -0.4%] | 2 | |
| 97 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.6%, -0.3%] | 8 | |
| 98 | +| All ❌✅ (primary) | -0.4% | [-0.4%, -0.4%] | 2 | |
| 99 | + |
| 100 | + |
| 101 | +Fall through when resolving elided assoc const lifetimes [#115429](https://github.com/rust-lang/rust/pull/115429) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=585bb5e68d85c1e4f32da3e2499343372626a436&end=9229b1eab44046253971445be47423ef779b178f&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) | -1.0% | [-1.5%, -0.6%] | 7 | |
| 108 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 109 | +| All ❌✅ (primary) | -1.0% | [-1.5%, -0.6%] | 7 | |
| 110 | + |
| 111 | + |
| 112 | +Don't manually compute param indices when adding implicit `Sized` and `ConstParamHasTy` [#115361](https://github.com/rust-lang/rust/pull/115361) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b89d7d6882532686fd90a89cec1a0fd386f0ade3&end=53a03978a7402d20ce8254fa1493929d67e01d07&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.3% | [-0.5%, -0.2%] | 5 | |
| 119 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.6%, -0.4%] | 2 | |
| 120 | +| All ❌✅ (primary) | -0.3% | [-0.5%, -0.2%] | 5 | |
| 121 | + |
| 122 | + |
| 123 | +Encode DepKind as u16 [#115391](https://github.com/rust-lang/rust/pull/115391) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=abfc6c44381fb033c6b3b0a6bfb804a799f39afd&end=b14b0745ad4913a21f00795738c047d0107dff4a&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) | -0.3% | [-0.3%, -0.3%] | 5 | |
| 130 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 3 | |
| 131 | +| All ❌✅ (primary) | -0.3% | [-0.3%, -0.3%] | 5 | |
| 132 | + |
| 133 | + |
| 134 | +Move RawOsError defination to sys [#115493](https://github.com/rust-lang/rust/pull/115493) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b14b0745ad4913a21f00795738c047d0107dff4a&end=ce798a52c30528366764a5993783b4e9ccfa46ee&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) | -0.6% | [-0.6%, -0.6%] | 3 | |
| 141 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 142 | +| All ❌✅ (primary) | -0.6% | [-0.6%, -0.6%] | 3 | |
| 143 | + |
| 144 | +* (I suspect this is spurious) |
| 145 | + |
| 146 | +read_via_copy: don't prematurely optimize away the read [#115531](https://github.com/rust-lang/rust/pull/115531) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9c609ae158aab27f1e7df446de6f2c09414012a9&end=626a6ab93fafd01b37b1e26c96cb6eec0d39f3eb&stat=instructions:u) |
| 147 | + |
| 148 | +| (instructions:u) | mean | range | count | |
| 149 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 150 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 151 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 152 | +| Improvements ✅ <br /> (primary) | -0.7% | [-0.7%, -0.7%] | 5 | |
| 153 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 154 | +| All ❌✅ (primary) | -0.7% | [-0.7%, -0.7%] | 5 | |
| 155 | + |
| 156 | +* (I suspect this is spurious) |
| 157 | + |
| 158 | +#### Mixed |
| 159 | + |
| 160 | +interpret: fix projecting into an unsized field of a local [#114483](https://github.com/rust-lang/rust/pull/114483) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=61efe9d2981b87ec7f2800d62f98c594de151713&end=26089ba0a2d9dab8381ccb0d7b99e704bc5cb3ed&stat=instructions:u) |
| 161 | + |
| 162 | +| (instructions:u) | mean | range | count | |
| 163 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 164 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 165 | +| Regressions ❌ <br /> (secondary) | 2.0% | [1.9%, 2.1%] | 6 | |
| 166 | +| Improvements ✅ <br /> (primary) | -2.2% | [-2.2%, -2.2%] | 1 | |
| 167 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.4%, -0.4%] | 3 | |
| 168 | +| All ❌✅ (primary) | -2.2% | [-2.2%, -2.2%] | 1 | |
| 169 | + |
| 170 | +* Ralf notes: "Regressions only affect our ctfe stress test, so it's likely some exaggerated consequence of a tiny change." |
| 171 | +* marked as triaged |
| 172 | + |
| 173 | +Lower `Or` pattern without allocating place [#111752](https://github.com/rust-lang/rust/pull/111752) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d6b4d35d5e94f6a1577e0e645fb23afc84615a6c&end=f4555ef5e14e8f0630fc5ad4e8efaef56d4acd4b&stat=instructions:u) |
| 174 | + |
| 175 | +| (instructions:u) | mean | range | count | |
| 176 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 177 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.0%] | 8 | |
| 178 | +| Regressions ❌ <br /> (secondary) | 0.9% | [0.5%, 1.6%] | 21 | |
| 179 | +| Improvements ✅ <br /> (primary) | -1.0% | [-3.7%, -0.3%] | 10 | |
| 180 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.3%] | 3 | |
| 181 | +| All ❌✅ (primary) | -0.3% | [-3.7%, 1.0%] | 18 | |
| 182 | + |
| 183 | +* nnethercote notes: "Performance-wise, icounts/cycles/wall-times have a mix of wins and losses that more or less balance out. But binary size has lots of wins, which is nice." |
| 184 | +* marked as triaged |
| 185 | + |
| 186 | +Skip rendering metadata strings from include_str!/include_bytes! [#115286](https://github.com/rust-lang/rust/pull/115286) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9dc11a13fa848c1b09b7248c540528190dcb79c5&end=1fb6947abc68683db05f837f07531a2f7d7ed8b3&stat=instructions:u) |
| 187 | + |
| 188 | +| (instructions:u) | mean | range | count | |
| 189 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 190 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 1 | |
| 191 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.3%, 0.7%] | 6 | |
| 192 | +| Improvements ✅ <br /> (primary) | -2.9% | [-10.3%, -0.3%] | 28 | |
| 193 | +| Improvements ✅ <br /> (secondary) | -2.6% | [-3.7%, -1.7%] | 9 | |
| 194 | +| All ❌✅ (primary) | -2.8% | [-10.3%, 0.3%] | 29 | |
| 195 | + |
| 196 | +* saethlin notes: "Regressions look like recovery from a spurious improvement in the previous run, and are way less significant than the improvements." |
| 197 | +* already marked as triaged |
| 198 | + |
| 199 | +bootstrap: use git merge-base for LLVM CI download logic [#115409](https://github.com/rust-lang/rust/pull/115409) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ad8f601ca2ba6186de6e1b2b5f46f47e18013961&end=585bb5e68d85c1e4f32da3e2499343372626a436&stat=instructions:u) |
| 200 | + |
| 201 | +| (instructions:u) | mean | range | count | |
| 202 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 203 | +| Regressions ❌ <br /> (primary) | 1.0% | [0.6%, 1.5%] | 7 | |
| 204 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 205 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 1 | |
| 206 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.3%] | 2 | |
| 207 | +| All ❌✅ (primary) | 0.8% | [-0.4%, 1.5%] | 8 | |
| 208 | + |
| 209 | + |
| 210 | +* this is a collection of spurious regressions to bitmaps-3.1.0 |
| 211 | + * see e.g. [this graph](https://perf.rust-lang.org/index.html?start=2023-08-31&end=2023-09-05&benchmark=bitmaps-3.1.0&profile=check&scenario=full&stat=instructions%3Au&kind=raw) and note the blip. |
| 212 | +* marked as triaged |
| 213 | + |
| 214 | +Add note on non-exhaustiveness when matching on str and nested non-exhaustive enums [#115270](https://github.com/rust-lang/rust/pull/115270) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2a1af898b2cb535a45cefe67acf9d023eff16b27&end=21305f4d5f32bcbc97f3b8e66dc23b03f3d948c4&stat=instructions:u) |
| 215 | + |
| 216 | +| (instructions:u) | mean | range | count | |
| 217 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 218 | +| Regressions ❌ <br /> (primary) | 1.1% | [0.8%, 1.4%] | 6 | |
| 219 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 220 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 221 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.5%, -0.5%] | 1 | |
| 222 | +| All ❌✅ (primary) | 1.1% | [0.8%, 1.4%] | 6 | |
| 223 | + |
| 224 | +* seems like continued spurious noise on bitmaps-3.1.0 |
| 225 | +* marked as triaged |
| 226 | + |
| 227 | +Rollup of 5 pull requests [#115518](https://github.com/rust-lang/rust/pull/115518) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=21305f4d5f32bcbc97f3b8e66dc23b03f3d948c4&end=58e967a9cc3bd39122e8cb728e8cec6e3a4eeef2&stat=instructions:u) |
| 228 | + |
| 229 | +| (instructions:u) | mean | range | count | |
| 230 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 231 | +| Regressions ❌ <br /> (primary) | 7.1% | [0.7%, 13.6%] | 2 | |
| 232 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 233 | +| Improvements ✅ <br /> (primary) | -1.1% | [-1.5%, -0.7%] | 7 | |
| 234 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 235 | +| All ❌✅ (primary) | 0.8% | [-1.5%, 13.6%] | 9 | |
| 236 | + |
| 237 | +* 13.6% regression to cargo-0.60.0 seems spurious (!), since it immediately returned to normal in #115491 |
| 238 | +* marked as triaged |
| 239 | + |
| 240 | +Outline panicking code for `RefCell::borrow` and `RefCell::borrow_mut` [#115491](https://github.com/rust-lang/rust/pull/115491) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=58e967a9cc3bd39122e8cb728e8cec6e3a4eeef2&end=abfc6c44381fb033c6b3b0a6bfb804a799f39afd&stat=instructions:u) |
| 241 | + |
| 242 | +| (instructions:u) | mean | range | count | |
| 243 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 244 | +| Regressions ❌ <br /> (primary) | 1.0% | [0.6%, 1.5%] | 8 | |
| 245 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 246 | +| Improvements ✅ <br /> (primary) | -6.3% | [-12.0%, -0.6%] | 2 | |
| 247 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.6%, -0.5%] | 4 | |
| 248 | +| All ❌✅ (primary) | -0.4% | [-12.0%, 1.5%] | 10 | |
| 249 | + |
| 250 | +* as lqd notes: "bitmaps and cargo opt incr-unchanged kinda look noisy atm" |
| 251 | +* marked as triaged |
| 252 | + |
| 253 | +Do not require associated types with Self: Sized to uphold bounds when confirming object candidate [#115467](https://github.com/rust-lang/rust/pull/115467) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=04374cd74264b9d3b7d2d3df08ae38df8af4d020&end=9c609ae158aab27f1e7df446de6f2c09414012a9&stat=instructions:u) |
| 254 | + |
| 255 | +| (instructions:u) | mean | range | count | |
| 256 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 257 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.6%, 0.6%] | 2 | |
| 258 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 259 | +| Improvements ✅ <br /> (primary) | -1.0% | [-1.2%, -0.8%] | 5 | |
| 260 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 261 | +| All ❌✅ (primary) | -0.6% | [-1.2%, 0.6%] | 7 | |
| 262 | + |
| 263 | +* all these changes (for better or for worse) look like yet more spurious noise. |
| 264 | +* marked as triaged |
0 commit comments