Skip to content

Commit d1b574c

Browse files
committed
triage for this week.
1 parent c6e4f57 commit d1b574c

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

triage/2024-11-19.md

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
# 2024-11-19 Triage Log
22

3-
TODO: Summary
3+
We saw improvements to a large swath of benchmarks with the querification of
4+
MonoItem collection (PR #132566). There were also some PRs where we are willing
5+
to pay a compile-time cost for expected runtime benefit (PR #132870, PR #120370),
6+
or pay a small cost in the single-threaded case in exchange for a big parallel
7+
compilation win (PR #124780).
48

5-
Triage done by **@???**.
9+
Triage done by **@pnkfelix**.
610
Revision range: [d4822c2d..7d40450b](https://perf.rust-lang.org/?start=d4822c2d84c242cc7403118b50c571464f38ef8f&end=7d40450b2df92bdc9dec414b30cf5f7a5979a92e&absolute=false&stat=instructions%3Au)
711

812
**Summary**:
@@ -31,6 +35,8 @@ Rollup of 5 pull requests [#133039](https://github.com/rust-lang/rust/pull/13303
3135
| Improvements ✅ <br /> (secondary) | - | - | 0 |
3236
| All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 1 |
3337

38+
* sole primary regression is to doc (full) on helloworld.
39+
* already triaged as being due to PR #133005 (and categorized as "improvements to rustdoc search that justify this cost")
3440

3541
Rollup of 7 pull requests [#133120](https://github.com/rust-lang/rust/pull/133120) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ee4a56e353dc3ddfcb12df5fe2dc1329a315c2f5&end=1e0df74445a185fc97b7e806cd6c636eaded1326&stat=instructions:u)
3642

@@ -42,6 +48,9 @@ Rollup of 7 pull requests [#133120](https://github.com/rust-lang/rust/pull/13312
4248
| Improvements ✅ <br /> (secondary) | - | - | 0 |
4349
| All ❌✅ (primary) | 0.2% | [0.1%, 0.3%] | 25 |
4450

51+
* primary regressions to {serde, libc, diesel, cargo, cranelift-codegen} (across multiple scenarios) and {html5ever, ripgrep, exa, syn, stm32f4, image, regex, webrender, hyper} (in isolated scenarios).
52+
* @nnethercote has hypothesized that PR #132134 may be responsible and is planning to investigate.
53+
* Not marking as triaged.
4554

4655
#### Improvements
4756

@@ -55,6 +64,7 @@ move all mono-time checks into their own folder, and their own query [#132843](h
5564
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.4%, -0.4%] | 1 |
5665
| All ❌✅ (primary) | -0.2% | [-0.2%, -0.2%] | 4 |
5766

67+
* (based on conversation in the PR itself, I think this "gain" is illusory and these benchmarks are just unstable)
5868

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

@@ -101,6 +111,9 @@ Rollup of 7 pull requests [#132919](https://github.com/rust-lang/rust/pull/13291
101111
| Improvements ✅ <br /> (secondary) | -2.4% | [-2.4%, -2.4%] | 1 |
102112
| All ❌✅ (primary) | 0.3% | [-0.1%, 1.3%] | 7 |
103113

114+
* primary regressions are to doc scenarios; further investigation has indicated that PR #132144 is the root cause of them.
115+
* pnkfelix's understanding is that this is known potential cost of progress when adding new traits (Receiver in this case) to stdlib.
116+
* marked as triaged
104117

105118
`#[inline]` integer parsing functions [#132870](https://github.com/rust-lang/rust/pull/132870) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f7273e0044ad8f35ad27282e4ab776af50b61a54&end=b420d923cff05f51eb43f607f5d8dce827eeba97&stat=instructions:u)
106119

@@ -112,6 +125,10 @@ Rollup of 7 pull requests [#132919](https://github.com/rust-lang/rust/pull/13291
112125
| Improvements ✅ <br /> (secondary) | - | - | 0 |
113126
| All ❌✅ (primary) | 0.6% | [-0.6%, 5.1%] | 15 |
114127

128+
* main notable regressions were to regex opt-incr-patched (5%), cargo opt-full (1.14%), cranelift-codegen opt-full (0.83%) and ripgrep opt-full (0.74%); (everything else was <0.5% change).
129+
* this is incurring a compilation cost, especially on opt builds, because its inlining more stuff
130+
* pnkfelix assumes that the runtime benefit justifies this runtime cost.
131+
* marking as triaged
115132

116133
[perf] rustdoc: Perform less work when cleaning middle::ty parenthesized generic args [#132886](https://github.com/rust-lang/rust/pull/132886) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=44f233f2519ce5d633c87c38014d03d8a5f0e810&end=ec239b888f3945a6ce043db639f1741d14f08874&stat=instructions:u)
117134

@@ -123,6 +140,7 @@ Rollup of 7 pull requests [#132919](https://github.com/rust-lang/rust/pull/13291
123140
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.1%] | 5 |
124141
| All ❌✅ (primary) | 1.0% | [1.0%, 1.0%] | 2 |
125142

143+
* already identified as measurement bias/noise and marked as triaged; thanks lqd!
126144

127145
Reland #132772: use `download-rustc="if-unchanged"` as a global default [#132872](https://github.com/rust-lang/rust/pull/132872) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ec239b888f3945a6ce043db639f1741d14f08874&end=65b3877488ccfef3b1a903bfdd269559c59b957c&stat=instructions:u)
128146

@@ -134,6 +152,7 @@ Reland #132772: use `download-rustc="if-unchanged"` as a global default [#132872
134152
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.9%, -0.3%] | 6 |
135153
| All ❌✅ (primary) | -1.1% | [-1.1%, -1.0%] | 3 |
136154

155+
* already identified as measurement bias/noise and marked as triaged; thanks lqd!
137156

138157
tweak attributes for const panic macro [#132662](https://github.com/rust-lang/rust/pull/132662) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a00df61387e5389d6fe23e38e657f90d672668b1&end=8adb4b30f40e6fbd21dc1ba26c3301c7eeb6de3c&stat=instructions:u)
139158

@@ -145,6 +164,9 @@ tweak attributes for const panic macro [#132662](https://github.com/rust-lang/ru
145164
| Improvements ✅ <br /> (secondary) | - | - | 0 |
146165
| All ❌✅ (primary) | -0.3% | [-2.0%, 0.9%] | 8 |
147166

167+
* primary regressions are to image (0.92%) and webrender (0.50%) in opt-full scenarios.
168+
* it seems like this might be just noise from changes to inlining decisions, since it seems like both those cases are undoing artificial improvements introduced by PR #132870 (noted above)
169+
* marking as triaged
148170

149171
rustc_metadata: Preprocess search paths for better performance [#132910](https://github.com/rust-lang/rust/pull/132910) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f00f68245ebe85960000adaab18c1fe8da104cfe&end=76fd47124b8f8037b6187169b2cdf39139466952&stat=instructions:u)
150172

@@ -156,6 +178,7 @@ rustc_metadata: Preprocess search paths for better performance [#132910](https:/
156178
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 2 |
157179
| All ❌✅ (primary) | 0.0% | [0.0%, 0.0%] | 1 |
158180

181+
* already marked by saethlin as triaged: "The reported regressions are extremely marginal, and the discussion above: [#132910 (comment)](https://github.com/rust-lang/rust/pull/132910#issuecomment-2473240290) contains instructions for how to demonstrate a quite significant benefit of this change."
159182

160183
Querify MonoItem collection [#132566](https://github.com/rust-lang/rust/pull/132566) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5afd5ad29c014de69bea61d028a1ce832ed75a75&end=ee4a56e353dc3ddfcb12df5fe2dc1329a315c2f5&stat=instructions:u)
161184

@@ -167,6 +190,9 @@ Querify MonoItem collection [#132566](https://github.com/rust-lang/rust/pull/132
167190
| Improvements ✅ <br /> (secondary) | -9.9% | [-67.2%, -0.3%] | 22 |
168191
| All ❌✅ (primary) | -5.4% | [-25.1%, 6.6%] | 83 |
169192

193+
* massive improvements; many incremental benchmarks are improved by 5% to 20% (and even 25% in the case of ripgrep)
194+
* the regressions here (mostly to helloworld) were anticipated during review and are far outweighed by the very notable gains in compiler performance across a broad swath of benchmarks.
195+
* marking as triaged
170196

171197
Likely unlikely fix [#120370](https://github.com/rust-lang/rust/pull/120370) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5ec7d6eee7e0f5236ec1559499070eaf836bc608&end=3fb7e441aecc3c054d71eb4d752d06e7776e8888&stat=instructions:u)
172198

@@ -178,6 +204,8 @@ Likely unlikely fix [#120370](https://github.com/rust-lang/rust/pull/120370) [(C
178204
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.4%, -0.1%] | 11 |
179205
| All ❌✅ (primary) | -0.2% | [-1.9%, 2.8%] | 25 |
180206

207+
* primary regressions on html5ever opt-full (2.78%), image opt-incr-patched (0.35%) (and stm32f4 doc-full (0.11%) but that's probably noise)
208+
* already triaged by saethlin; "some change is expected because these intrinsics used to do nothing" (i.e. they were broken before and are now believed to be fixed). Also clearly the benefits on the primary benchmarks is outweighing the limited primary regressions.
181209

182210
Use `TypingMode` throughout the compiler instead of `ParamEnv` [#132460](https://github.com/rust-lang/rust/pull/132460) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=03ee4845197ce71aa5ee28cb937a3e863b18b42f&end=b71fb5edc0217eaf8fc824a44cd7b0945e29ff4d&stat=instructions:u)
183211

@@ -189,6 +217,9 @@ Use `TypingMode` throughout the compiler instead of `ParamEnv` [#132460](https:/
189217
| Improvements ✅ <br /> (secondary) | -0.8% | [-0.9%, -0.7%] | 5 |
190218
| All ❌✅ (primary) | 0.1% | [-0.3%, 0.4%] | 9 |
191219

220+
* primary regressions to unicode-normalization profiles and (to a lesser extent) diesel, stm32f4, and cargo.
221+
* it seems like this regression was to some extent anticipated, at least from the [perf run that was done](https://github.com/rust-lang/rust/pull/132460#issuecomment-2465546736) while the PR was in development.
222+
* not formally marking as triaged yet; instead, left note saying that I'm inclined to mark as triage if either the PR author or the PR reviewer agree that this "regression", such as it is, was anticipated.
192223

193224
Improve VecCache under parallel frontend [#124780](https://github.com/rust-lang/rust/pull/124780) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b71fb5edc0217eaf8fc824a44cd7b0945e29ff4d&end=5926e82dd1eae211c6e2ffe446de54df04798e89&stat=instructions:u)
194225

@@ -200,6 +231,8 @@ Improve VecCache under parallel frontend [#124780](https://github.com/rust-lang/
200231
| Improvements ✅ <br /> (secondary) | -1.9% | [-3.0%, -0.4%] | 8 |
201232
| All ❌✅ (primary) | 1.0% | [0.2%, 3.3%] | 214 |
202233

234+
* left a note pointing out that there was a pretty serious process deviation, in that this was marked with rustc-perf-triaged for a different commit (maybe a different commit series?), months before this had gotten review or even landed...
235+
* but having said that, I looked over the data and it seems like the label remains justified, so I have left the label in place.
203236

204237
#### Untriaged Pull Requests
205238

@@ -233,8 +266,3 @@ Improve VecCache under parallel frontend [#124780](https://github.com/rust-lang/
233266
- [#128155 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/128155)
234267
- [#128104 Not lint pub structs without pub constructors intentionally](https://github.com/rust-lang/rust/pull/128104)
235268
- [#127998 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/127998)
236-
237-
#### Nags requiring follow up
238-
239-
TODO: Nags
240-

0 commit comments

Comments
 (0)