Skip to content

Commit 7831edc

Browse files
authored
Merge pull request #1481 from pnkfelix/triage-2022-10-26
triage report for this week.
2 parents 49440ef + 5841a42 commit 7831edc

File tree

1 file changed

+196
-0
lines changed

1 file changed

+196
-0
lines changed

triage/2022-10-26.md

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
# 2022-10-26 Triage Log
2+
3+
An amazing week. We saw more wins than losses; I want to call out specifically
4+
the wins from removing attributes from metadata (up to 8.2% faster builds for 18
5+
benchmarks) and from enabling LTO for rustc_driver.so (up to 9.6% faster builds
6+
for an epic 230 benchmarks, with *zero* regressions).
7+
8+
Triage done by **@pnkfelix**.
9+
Revision range: [e0f8e60d..629a414d](https://perf.rust-lang.org/?start=e0f8e60dddfecfc9093ee9d9f42557d8260c0355&end=629a414d7ba4caa3ca28b0a46c478e2ecb4c0059&absolute=false&stat=instructions%3Au)
10+
11+
**Summary**:
12+
13+
| (instructions:u) | mean | range | count |
14+
|:----------------:|:----:|:-----:|:-----:|
15+
| Regressions ❌ <br /> (primary) | - | - | 0 |
16+
| Regressions ❌ <br /> (secondary) | 0.7% | [0.7%, 0.7%] | 2 |
17+
| Improvements ✅ <br /> (primary) | -4.3% | [-9.4%, -0.4%] | 231 |
18+
| Improvements ✅ <br /> (secondary) | -4.4% | [-9.5%, -0.5%] | 256 |
19+
| All ❌✅ (primary) | -4.3% | [-9.4%, -0.4%] | 231 |
20+
21+
22+
2 Regressions, 6 Improvements, 2 Mixed; 2 of them in rollups
23+
53 artifact comparisons made in total
24+
25+
#### Regressions
26+
27+
Add default trait implementations for "c-unwind" ABI function pointers [#101263](https://github.com/rust-lang/rust/pull/101263) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=57e2c06a8df3187980801962015a88657abd033d&end=5c8bff74bc1c52bef0c79f3689bb227f51f3e82d&stat=instructions:u)
28+
29+
| (instructions:u) | mean | range | count |
30+
|:----------------:|:----:|:-----:|:-----:|
31+
| Regressions ❌ <br /> (primary) | 0.9% | [0.2%, 2.6%] | 19 |
32+
| Regressions ❌ <br /> (secondary) | 1.9% | [0.4%, 3.0%] | 23 |
33+
| Improvements ✅ <br /> (primary) | - | - | 0 |
34+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
35+
| All ❌✅ (primary) | 0.9% | [0.2%, 2.6%] | 19 |
36+
37+
* already triaged; all doc perf regressions, and already deemed acceptable.
38+
39+
40+
Rollup of 10 pull requests [#103562](https://github.com/rust-lang/rust/pull/103562) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d49e7e7fa13479c11a3733824c78e280e391288b&end=629a414d7ba4caa3ca28b0a46c478e2ecb4c0059&stat=instructions:u)
41+
42+
| (instructions:u) | mean | range | count |
43+
|:----------------:|:----:|:-----:|:-----:|
44+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 43 |
45+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 1.2%] | 25 |
46+
| Improvements ✅ <br /> (primary) | - | - | 0 |
47+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
48+
| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 43 |
49+
50+
* all of the primary regressions (which seem small) are all in incr-patched scenarios. Most are also check builds, though there is some debug and opt mixed in as well.
51+
* hard to tell from the list of rolled up PR's which one(s) would be to blame here
52+
* w.r.t. the secondary benchmarks, the main contributor (in terms of the max regression observed) is `deeply-nested-multi`, which regressed by 0.74--1.2% depending on the scenario.
53+
* (In this case, the 1.2% regression is to a full build, not an incremental one.)
54+
* In any case, the sheer number of impacted benchmarks is large enough that this warrants further review. Not marking as triaged. I'll try to dig into it later.
55+
56+
#### Improvements
57+
58+
Use Set instead of Vec in transitive_relation [#103214](https://github.com/rust-lang/rust/pull/103214) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d7dd01fe8b071602510eaac9f676acc0e3cf8e4a&end=4b8f4319954ff2642690b9e5cbe4af352d095bf6&stat=instructions:u)
59+
60+
| (instructions:u) | mean | range | count |
61+
|:----------------:|:----:|:-----:|:-----:|
62+
| Regressions ❌ <br /> (primary) | - | - | 0 |
63+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
64+
| Improvements ✅ <br /> (primary) | -0.6% | [-0.7%, -0.6%] | 2 |
65+
| Improvements ✅ <br /> (secondary) | -1.2% | [-1.6%, -0.6%] | 7 |
66+
| All ❌✅ (primary) | -0.6% | [-0.7%, -0.6%] | 2 |
67+
68+
* as noted in PR description: "doesn't fix the underlying quadraticness but it makes it a lot faster to an extent where even doubling the amount of nested references still takes less than two seconds (50s on nightly)."
69+
70+
Remove more attributes from metadata [#98450](https://github.com/rust-lang/rust/pull/98450) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=657f246812ab2684e3c3954b1c77f98fd59e0b21&end=ba9d01be67a97dd6762935762172e37ee22083ae&stat=instructions:u)
71+
72+
| (instructions:u) | mean | range | count |
73+
|:----------------:|:----:|:-----:|:-----:|
74+
| Regressions ❌ <br /> (primary) | - | - | 0 |
75+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
76+
| Improvements ✅ <br /> (primary) | -2.7% | [-8.2%, -0.2%] | 18 |
77+
| Improvements ✅ <br /> (secondary) | -5.5% | [-8.4%, -0.8%] | 23 |
78+
| All ❌✅ (primary) | -2.7% | [-8.2%, -0.2%] | 18 |
79+
80+
* This PR's comment+development history are pretty epic. :smile:
81+
* anyway, great work from @lqd and @GuillaumeGomez
82+
83+
stop using `ty::UnevaluatedConst` directly [#103227](https://github.com/rust-lang/rust/pull/103227) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3022afe3d144ca6acd34da9846ab74fa51328fda&end=26c96e341639102afacbbcad0dc18ad0ac71ab18&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.4%, -0.2%] | 10 |
90+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
91+
| All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 10 |
92+
93+
94+
Enable LTO for rustc_driver.so [#101403](https://github.com/rust-lang/rust/pull/101403) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9be2f35a4c1ed1b04aa4a6945b64763f599259ff&end=1ca6777c014813e3bdb98d155562fc3d111d86dd&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) | -4.2% | [-9.6%, -0.4%] | 230 |
101+
| Improvements ✅ <br /> (secondary) | -4.0% | [-9.5%, -0.4%] | 257 |
102+
| All ❌✅ (primary) | -4.2% | [-9.6%, -0.4%] | 230 |
103+
104+
* Holy cow: 9.6% faster compiling diesel, 7% faster compiling serde, 1.3% faster bootstrap. Epic wins there.
105+
* there is perhaps concern that it caused [#103538](https://github.com/rust-lang/rust/issues/103538): "rustc-dev component recently became a lot bigger"
106+
107+
Rollup of 11 pull requests [#103502](https://github.com/rust-lang/rust/pull/103502) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=758f19645b8ebce61ea52d1f6672fd057bc8dbee&end=f2702e922ba31e49d6167f5651d4545646dcf22d&stat=instructions:u)
108+
109+
| (instructions:u) | mean | range | count |
110+
|:----------------:|:----:|:-----:|:-----:|
111+
| Regressions ❌ <br /> (primary) | - | - | 0 |
112+
| Regressions ❌ <br /> (secondary) | 2.3% | [2.3%, 2.3%] | 1 |
113+
| Improvements ✅ <br /> (primary) | -0.5% | [-0.5%, -0.5%] | 1 |
114+
| Improvements ✅ <br /> (secondary) | -0.9% | [-1.2%, -0.8%] | 6 |
115+
| All ❌✅ (primary) | -0.5% | [-0.5%, -0.5%] | 1 |
116+
117+
118+
119+
Perf improvements for effective visibility calculating [#103158](https://github.com/rust-lang/rust/pull/103158) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6365e5ad9fa9e2ec867a67aeeae414e7c62d8354&end=a5406feb1cf1a9f2479b72917cf4225e5f6aa240&stat=instructions:u)
120+
121+
| (instructions:u) | mean | range | count |
122+
|:----------------:|:----:|:-----:|:-----:|
123+
| Regressions ❌ <br /> (primary) | - | - | 0 |
124+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
125+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.5%, -0.3%] | 6 |
126+
| Improvements ✅ <br /> (secondary) | -0.6% | [-2.0%, -0.2%] | 22 |
127+
| All ❌✅ (primary) | -0.4% | [-0.5%, -0.3%] | 6 |
128+
129+
* libc build times improved by ~1% in ten scenarios
130+
131+
132+
133+
#### Mixed
134+
135+
Deny hashing ty/re/ct inference variables [#103220](https://github.com/rust-lang/rust/pull/103220) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ebdde35dced40adb46f8aad054fb2adb86b39427&end=4b3b731b55a588dd34a75bbb87fdaaec2e3f5707&stat=instructions:u)
136+
137+
| (instructions:u) | mean | range | count |
138+
|:----------------:|:----:|:-----:|:-----:|
139+
| Regressions ❌ <br /> (primary) | - | - | 0 |
140+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.5%, 1.2%] | 8 |
141+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.2%] | 2 |
142+
| Improvements ✅ <br /> (secondary) | -0.9% | [-1.0%, -0.5%] | 9 |
143+
| All ❌✅ (primary) | -0.2% | [-0.3%, -0.2%] | 2 |
144+
145+
* already triaged: "The perf changes are small and the wins balance out the losses. No need to stress on this one, I think."
146+
147+
Remove ParamEnv from uninhabited query [#102660](https://github.com/rust-lang/rust/pull/102660) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6e95b6da885f42a4e1314595089fa4295e329d11&end=6c9c2d862dd10718ba2b2a320c3390995ad414bc&stat=instructions:u)
148+
149+
| (instructions:u) | mean | range | count |
150+
|:----------------:|:----:|:-----:|:-----:|
151+
| Regressions ❌ <br /> (primary) | - | - | 0 |
152+
| Regressions ❌ <br /> (secondary) | 1.5% | [1.2%, 1.7%] | 7 |
153+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
154+
| Improvements ✅ <br /> (secondary) | -1.2% | [-1.2%, -1.2%] | 3 |
155+
| All ❌✅ (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
156+
157+
* Not sure why this was flagged as Mixed rather than Improvement.
158+
* Marked as triaged.
159+
160+
#### Untriaged Pull Requests
161+
162+
- [#103562 Rollup of 10 pull requests](https://github.com/rust-lang/rust/pull/103562)
163+
- [#102975 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/102975)
164+
- [#102915 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/102915)
165+
- [#102895 Get rid of `rustc_query_description!`](https://github.com/rust-lang/rust/pull/102895)
166+
- [#102867 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/102867)
167+
- [#102809 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/102809)
168+
- [#102660 Remove ParamEnv from uninhabited query](https://github.com/rust-lang/rust/pull/102660)
169+
- [#102548 Mark Cell::replace() as #[inline]](https://github.com/rust-lang/rust/pull/102548)
170+
- [#102026 Populate effective visibilities in 'rustc_resolve'](https://github.com/rust-lang/rust/pull/102026)
171+
- [#101858 derive various impls instead of hand-rolling them](https://github.com/rust-lang/rust/pull/101858)
172+
- [#101857 change `FnMutDelegate` to trait objects](https://github.com/rust-lang/rust/pull/101857)
173+
- [#101632 Remove `TypeckResults` from `InferCtxt`](https://github.com/rust-lang/rust/pull/101632)
174+
- [#101620 Compute lint levels by definition](https://github.com/rust-lang/rust/pull/101620)
175+
- [#101433 Emit a note that static bounds from HRTBs are a bug](https://github.com/rust-lang/rust/pull/101433)
176+
- [#100982 Require `#[const_trait]` on `Trait` for `impl const Trait`](https://github.com/rust-lang/rust/pull/100982)
177+
- [#100963 Rollup of 15 pull requests](https://github.com/rust-lang/rust/pull/100963)
178+
- [#100869 Replace `rustc_data_structures::thin_vec::ThinVec` with `thin_vec::ThinVec`](https://github.com/rust-lang/rust/pull/100869)
179+
- [#100841 update Miri](https://github.com/rust-lang/rust/pull/100841)
180+
- [#100759 Make `const_eval_select` a real intrinsic](https://github.com/rust-lang/rust/pull/100759)
181+
- [#100748 add `depth_limit` in `QueryVTable` to avoid entering a new tcx in `layout_of`](https://github.com/rust-lang/rust/pull/100748)
182+
- [#100676 implied bounds: explicitly state which types are assumed to be wf](https://github.com/rust-lang/rust/pull/100676)
183+
- [#100652 Remove deferred sized checks (make them eager)](https://github.com/rust-lang/rust/pull/100652)
184+
- [#100497 Avoid cloning a collection only to iterate over it](https://github.com/rust-lang/rust/pull/100497)
185+
- [#100429 rustdoc: Merge source code pages HTML elements together](https://github.com/rust-lang/rust/pull/100429)
186+
- [#100293 Add inline-llvm option for disabling/enabling LLVM inlining](https://github.com/rust-lang/rust/pull/100293)
187+
- [#100096 a fn pointer doesn't implement `Fn`/`FnMut`/`FnOnce` if its return type isn't sized](https://github.com/rust-lang/rust/pull/100096)
188+
- [#99792 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/99792)
189+
- [#99520 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/99520)
190+
- [#99251 Upgrade indexmap and thorin-dwp to use hashbrown 0.12](https://github.com/rust-lang/rust/pull/99251)
191+
- [#99231 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/99231)
192+
193+
#### Nags requiring follow up
194+
195+
TODO: Nags
196+

0 commit comments

Comments
 (0)