Skip to content

Commit 0aaa5fa

Browse files
Merge pull request #1523 from pnkfelix/triage-2023-02-07
perf triage for this week.
2 parents 10cdee3 + 45b216f commit 0aaa5fa

File tree

1 file changed

+248
-0
lines changed

1 file changed

+248
-0
lines changed

triage/2023-02-07.md

+248
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
# 2023-02-07 Triage Log
2+
3+
Much noise in benchmarks this week, which makes it hard to tell what the real
4+
improvements were and what they were due to. A query cache change (PR #107667)
5+
is part of the story. In addition, much improvement was reaped from the change
6+
to *not* deaggregate MIR (PR #107267). Finally, microoptimizing `fold_ty`
7+
(PR #107627) yielded a small improvement to a broad set of benchmarks.
8+
9+
Triage done by **@pnkfelix**.
10+
Revision range: [a64ef7d0..e4dd9edb](https://perf.rust-lang.org/?start=a64ef7d07d0411315be85a646586cb85eeb9c136&end=e4dd9edb76a34ecbca539967f9662b8c0cc9c7fb&absolute=false&stat=instructions%3Au)
11+
12+
**Summary**:
13+
14+
| (instructions:u) | mean | range | count |
15+
|:----------------------------------:|:-----:|:---------------:|:-----:|
16+
| Regressions ❌ <br /> (primary) | 2.4% | [0.3%, 18.8%] | 18 |
17+
| Regressions ❌ <br /> (secondary) | 1.8% | [0.2%, 4.1%] | 21 |
18+
| Improvements ✅ <br /> (primary) | -1.0% | [-3.2%, -0.3%] | 88 |
19+
| Improvements ✅ <br /> (secondary) | -4.0% | [-13.1%, -0.1%] | 47 |
20+
| All ❌✅ (primary) | -0.4% | [-3.2%, 18.8%] | 106 |
21+
22+
23+
3 Regressions, 3 Improvements, 8 Mixed; 3 of them in rollups
24+
41 artifact comparisons made in total
25+
26+
#### Regressions
27+
28+
Fix handling of items inside a `doc(hidden)` block [#107000](https://github.com/rust-lang/rust/pull/107000) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f3126500f25114ba4e0ac3e76694dd45a22de56d&end=6c991b07403a3234dd1ec0ac973b8ef97055e605&stat=instructions:u)
29+
30+
| (instructions:u) | mean | range | count |
31+
|:----------------------------------:|:----:|:-------------:|:-----:|
32+
| Regressions ❌ <br /> (primary) | 4.1% | [0.2%, 18.9%] | 9 |
33+
| Regressions ❌ <br /> (secondary) | 1.1% | [0.2%, 1.7%] | 5 |
34+
| Improvements ✅ <br /> (primary) | - | - | 0 |
35+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
36+
| All ❌✅ (primary) | 4.1% | [0.2%, 18.9%] | 9 |
37+
38+
* a number of doc benchmarks regressed, but only doc benchmarks.
39+
* the big hit was a 18.9% regression to doc on hyper.
40+
* rustdoc developer says the issue cannot be resolved without *some* amount of regression, so marked as triaged.
41+
42+
don't point at nonexisting code beyond EOF when warning about delims [#107663](https://github.com/rust-lang/rust/pull/107663) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=319b88c463fe6f51bb6badbbd3bb97252a60f3a5&end=a67649675014546ce454d65bc8fe3ebd18e6a319&stat=instructions:u)
43+
44+
| (instructions:u) | mean | range | count |
45+
|:----------------------------------:|:----:|:------------:|:-----:|
46+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
47+
| Regressions ❌ <br /> (secondary) | 0.9% | [0.2%, 1.3%] | 9 |
48+
| Improvements ✅ <br /> (primary) | - | - | 0 |
49+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
50+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 1 |
51+
52+
* already marked as triaged
53+
54+
55+
Run `expand-yaml-anchors` in `x test tidy` [#107704](https://github.com/rust-lang/rust/pull/107704) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=dffea43fc1102bdfe16d88ed412c23d4f0f08d9d&end=e4dd9edb76a34ecbca539967f9662b8c0cc9c7fb&stat=instructions:u)
56+
57+
| (instructions:u) | mean | range | count |
58+
|:----------------------------------:|:----:|:------------:|:-----:|
59+
| Regressions ❌ <br /> (primary) | 1.0% | [0.4%, 1.5%] | 3 |
60+
| Regressions ❌ <br /> (secondary) | 3.7% | [3.4%, 4.3%] | 6 |
61+
| Improvements ✅ <br /> (primary) | - | - | 0 |
62+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
63+
| All ❌✅ (primary) | 1.0% | [0.4%, 1.5%] | 3 |
64+
65+
* PR author says PR touched only CI code, and therefore this must be noise
66+
* primary regressions are on cranelift variations; secondary are on keccak
67+
* graphs for cranelift and keccak both have up-and-down swings that both begun with #107627; will check with nnethercote about that
68+
* marked as triaged.
69+
70+
#### Improvements
71+
72+
emit `ConstEquate` in `TypeRelating<D>` [#107434](https://github.com/rust-lang/rust/pull/107434) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=50d3ba5bcbf5c7e13d4ce068d3339710701dd603&end=2a6ff729233c62d1d991da5ed4d01aa29e59d637&stat=instructions:u)
73+
74+
| (instructions:u) | mean | range | count |
75+
|:----------------------------------:|:-----:|:--------------:|:-----:|
76+
| Regressions ❌ <br /> (primary) | - | - | 0 |
77+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
78+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.3%] | 2 |
79+
| Improvements ✅ <br /> (secondary) | -0.8% | [-1.3%, -0.2%] | 10 |
80+
| All ❌✅ (primary) | -0.4% | [-0.4%, -0.3%] | 2 |
81+
82+
83+
Recover form missing expression in `for` loop [#107526](https://github.com/rust-lang/rust/pull/107526) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a67649675014546ce454d65bc8fe3ebd18e6a319&end=75a0be98f25a4b9de5afa0e15eb016e7f9627032&stat=instructions:u)
84+
85+
| (instructions:u) | mean | range | count |
86+
|:----------------------------------:|:-----:|:--------------:|:-----:|
87+
| Regressions ❌ <br /> (primary) | - | - | 0 |
88+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
89+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.3%] | 2 |
90+
| Improvements ✅ <br /> (secondary) | -1.0% | [-1.3%, -0.6%] | 7 |
91+
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.3%] | 2 |
92+
93+
94+
Remove `OnHit` callback from query caches. [#107667](https://github.com/rust-lang/rust/pull/107667) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0c13c172507f01d921808107d2c4ec37b43b982d&end=e7813fee92c56621d08e8dbe83948d9f4a30a9ec&stat=instructions:u)
95+
96+
| (instructions:u) | mean | range | count |
97+
|:----------------------------------:|:-----:|:--------------:|:-----:|
98+
| Regressions ❌ <br /> (primary) | - | - | 0 |
99+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
100+
| Improvements ✅ <br /> (primary) | -0.6% | [-1.7%, -0.2%] | 49 |
101+
| Improvements ✅ <br /> (secondary) | -2.0% | [-5.9%, -0.3%] | 36 |
102+
| All ❌✅ (primary) | -0.6% | [-1.7%, -0.2%] | 49 |
103+
104+
* as [already noted](https://github.com/rust-lang/rust/pull/107667#issuecomment-1419760041) by nnethercote, these results appear better than reality
105+
* much of the delta is noise (namely inverse of #107627 (see below)).
106+
107+
#### Mixed
108+
109+
Don't generate unecessary `&&self.field` in deriving Debug [#107599](https://github.com/rust-lang/rust/pull/107599) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a94b9fd0ace1336a3dd93f51f1c0db6ca0fd7f92&end=9545094994f1ab45cab5799d5b45980871a9e97b&stat=instructions:u)
110+
111+
| (instructions:u) | mean | range | count |
112+
|:----------------------------------:|:-----:|:--------------:|:-----:|
113+
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.4%] | 2 |
114+
| Regressions ❌ <br /> (secondary) | 1.0% | [0.2%, 4.9%] | 7 |
115+
| Improvements ✅ <br /> (primary) | -1.0% | [-2.9%, -0.4%] | 9 |
116+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
117+
| All ❌✅ (primary) | -0.8% | [-2.9%, 0.4%] | 11 |
118+
119+
* [already triaged](https://github.com/rust-lang/rust/pull/107599#issuecomment-1416528826) as noise
120+
121+
Rollup of 6 pull requests [#107642](https://github.com/rust-lang/rust/pull/107642) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9545094994f1ab45cab5799d5b45980871a9e97b&end=658fad6c5506f41c35b64fb1a22ceb0992697ff3&stat=instructions:u)
122+
123+
| (instructions:u) | mean | range | count |
124+
|:----------------------------------:|:-----:|:--------------:|:-----:|
125+
| Regressions ❌ <br /> (primary) | - | - | 0 |
126+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 0.8%] | 9 |
127+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 8 |
128+
| Improvements ✅ <br /> (secondary) | -0.8% | [-1.1%, -0.5%] | 7 |
129+
| All ❌✅ (primary) | -0.3% | [-0.5%, -0.2%] | 8 |
130+
131+
* sole regressions are to (secondary) deep-vector and match-stress.
132+
* perf graph for deep-vector hints that this might not be noise, but it is also minor.
133+
* marking as triaged.
134+
135+
Rollup of 8 pull requests [#107650](https://github.com/rust-lang/rust/pull/107650) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=658fad6c5506f41c35b64fb1a22ceb0992697ff3&end=886b2c3e005b153b3c8263f48193e0df7de0f5b3&stat=instructions:u)
136+
137+
| (instructions:u) | mean | range | count |
138+
|:----------------------------------:|:-----:|:--------------:|:-----:|
139+
| Regressions ❌ <br /> (primary) | - | - | 0 |
140+
| Regressions ❌ <br /> (secondary) | 4.4% | [0.3%, 6.2%] | 8 |
141+
| Improvements ✅ <br /> (primary) | - | - | 0 |
142+
| Improvements ✅ <br /> (secondary) | -7.4% | [-7.4%, -7.4%] | 1 |
143+
| All ❌✅ (primary) | - | - | 0 |
144+
145+
* the vast bulk regressions are on six variations of secondary benchmarks match-stress
146+
* and *all* of those appear to to have all been resolved by follow-on PR #107667 (see above)
147+
* marking as triaged.
148+
149+
Do not deaggregate MIR [#107267](https://github.com/rust-lang/rust/pull/107267) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4aa6afa7f8a418a7dae5dbe4c95371d4f3bcc0e1&end=9dee4e4c42d23b0c5afd6d8fed025181f70fbe12&stat=instructions:u)
150+
151+
| (instructions:u) | mean | range | count |
152+
|:----------------------------------:|:-----:|:---------------:|:-----:|
153+
| Regressions ❌ <br /> (primary) | 0.5% | [0.2%, 1.1%] | 51 |
154+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.1%, 2.0%] | 30 |
155+
| Improvements ✅ <br /> (primary) | -1.4% | [-2.6%, -0.3%] | 25 |
156+
| Improvements ✅ <br /> (secondary) | -6.0% | [-12.9%, -0.6%] | 27 |
157+
| All ❌✅ (primary) | -0.1% | [-2.6%, 1.1%] | 76 |
158+
159+
* already marked as triaged (wins far outweigh losses)
160+
161+
162+
Rollup of 3 pull requests [#107672](https://github.com/rust-lang/rust/pull/107672) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3de7d7fb22a579a3d59ddb1c959d1b3da224aafa&end=50d3ba5bcbf5c7e13d4ce068d3339710701dd603&stat=instructions:u)
163+
164+
| (instructions:u) | mean | range | count |
165+
|:----------------------------------:|:-----:|:--------------:|:-----:|
166+
| Regressions ❌ <br /> (primary) | - | - | 0 |
167+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.8%, 0.8%] | 2 |
168+
| Improvements ✅ <br /> (primary) | - | - | 0 |
169+
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.1%, -0.4%] | 7 |
170+
| All ❌✅ (primary) | - | - | 0 |
171+
172+
* regressions are to secondary benchmark externs.
173+
* whatever this regression was, it has since been more than recovered by #107667
174+
175+
Less import overhead for errors [#107679](https://github.com/rust-lang/rust/pull/107679) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2a6ff729233c62d1d991da5ed4d01aa29e59d637&end=7f97aeaf73047268299ab55288b3dd886130be47&stat=instructions:u)
176+
177+
| (instructions:u) | mean | range | count |
178+
|:----------------------------------:|:-----:|:--------------:|:-----:|
179+
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.5%] | 2 |
180+
| Regressions ❌ <br /> (secondary) | 0.9% | [0.3%, 1.3%] | 11 |
181+
| Improvements ✅ <br /> (primary) | - | - | 0 |
182+
| Improvements ✅ <br /> (secondary) | -0.7% | [-0.7%, -0.7%] | 2 |
183+
| All ❌✅ (primary) | 0.4% | [0.3%, 0.5%] | 2 |
184+
185+
* already marked as triaged (its obvious noise)
186+
187+
rustdoc: change trait bound formatting [#102842](https://github.com/rust-lang/rust/pull/102842) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7f97aeaf73047268299ab55288b3dd886130be47&end=319b88c463fe6f51bb6badbbd3bb97252a60f3a5&stat=instructions:u)
188+
189+
| (instructions:u) | mean | range | count |
190+
|:----------------------------------:|:-----:|:--------------:|:-----:|
191+
| Regressions ❌ <br /> (primary) | - | - | 0 |
192+
| Regressions ❌ <br /> (secondary) | 0.7% | [0.7%, 0.7%] | 2 |
193+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 2 |
194+
| Improvements ✅ <br /> (secondary) | -0.9% | [-1.3%, -0.3%] | 11 |
195+
| All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 2 |
196+
197+
* already marked as triaged (and its noise)
198+
199+
200+
Optimize `fold_ty` [#107627](https://github.com/rust-lang/rust/pull/107627) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=75a0be98f25a4b9de5afa0e15eb016e7f9627032&end=14ea63a7e005f9ca48bc13df6cb4fc5afe32febe&stat=instructions:u)
201+
202+
| (instructions:u) | mean | range | count |
203+
|:----------------------------------:|:-----:|:--------------:|:-----:|
204+
| Regressions ❌ <br /> (primary) | 1.1% | [1.0%, 1.1%] | 2 |
205+
| Regressions ❌ <br /> (secondary) | 2.3% | [0.6%, 4.2%] | 12 |
206+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.5%, -0.3%] | 18 |
207+
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.6%, -0.2%] | 30 |
208+
| All ❌✅ (primary) | -0.3% | [-0.5%, 1.1%] | 20 |
209+
210+
* [already marked as triaged](https://github.com/rust-lang/rust/pull/107627#issuecomment-1419762439)
211+
212+
#### Untriaged Pull Requests
213+
214+
- [#107704 Run `expand-yaml-anchors` in `x test tidy`](https://github.com/rust-lang/rust/pull/107704)
215+
- [#107672 Rollup of 3 pull requests](https://github.com/rust-lang/rust/pull/107672)
216+
- [#107650 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/107650)
217+
- [#107642 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/107642)
218+
- [#107408 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/107408)
219+
- [#107143 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/107143)
220+
- [#107103 Use new solver in `evaluate_obligation` query (when new solver is enabled)](https://github.com/rust-lang/rust/pull/107103)
221+
- [#107101 Filter param-env predicates for errors before calling `to_opt_poly_trait_pred`](https://github.com/rust-lang/rust/pull/107101)
222+
- [#107000 Fix handling of items inside a `doc(hidden)` block](https://github.com/rust-lang/rust/pull/107000)
223+
- [#106757 Rollup of 10 pull requests](https://github.com/rust-lang/rust/pull/106757)
224+
- [#105657 Guard ProjectionTy creation against passing the wrong number of substs](https://github.com/rust-lang/rust/pull/105657)
225+
- [#105472 Make encode_info_for_trait_item use queries instead of accessing the HIR](https://github.com/rust-lang/rust/pull/105472)
226+
- [#105426 Catch panics/unwinding in destruction of TLS values](https://github.com/rust-lang/rust/pull/105426)
227+
- [#105378 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/105378)
228+
- [#105323 Perform SimplifyLocals before ConstProp.](https://github.com/rust-lang/rust/pull/105323)
229+
- [#105147 Allow unsafe through inline const](https://github.com/rust-lang/rust/pull/105147)
230+
- [#104566 couple of clippy::perf fixes](https://github.com/rust-lang/rust/pull/104566)
231+
- [#104533 Clean up and harden various methods around trait substs](https://github.com/rust-lang/rust/pull/104533)
232+
- [#104017 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/104017)
233+
- [#103998 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/103998)
234+
- [#103975 Some tracing and comment cleanups](https://github.com/rust-lang/rust/pull/103975)
235+
- [#103934 std: sync "Dependencies of the `backtrace` crate" with `backtrace`](https://github.com/rust-lang/rust/pull/103934)
236+
- [#103880 Use non-ascribed type as field's type in mir](https://github.com/rust-lang/rust/pull/103880)
237+
- [#103841 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/103841)
238+
- [#103650 rustdoc: change `.src-line-numbers > span` to `.src-line-numbers > a`](https://github.com/rust-lang/rust/pull/103650)
239+
- [#103562 Rollup of 10 pull requests](https://github.com/rust-lang/rust/pull/103562)
240+
- [#103439 Show note where the macro failed to match](https://github.com/rust-lang/rust/pull/103439)
241+
- [#103295 ci: Bring back ninja for dist builders](https://github.com/rust-lang/rust/pull/103295)
242+
- [#103071 Fix line numbers for MIR inlined code](https://github.com/rust-lang/rust/pull/103071)
243+
- [#102975 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/102975)
244+
245+
#### Nags requiring follow up
246+
247+
TODO: Nags
248+

0 commit comments

Comments
 (0)