Skip to content

Commit 0fcb3f8

Browse files
Merge pull request #1600 from pnkfelix/triage-2023-05-30
Triage 2023 05 30
2 parents fde93e5 + dd296e1 commit 0fcb3f8

File tree

1 file changed

+179
-0
lines changed

1 file changed

+179
-0
lines changed

triage/2023-05-30.md

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
# 2023-05-30 Triage Log
2+
3+
A good week overall, with a broad set of improvements to many primary benchmarks.
4+
The main single source of primary regressions is from rollup PR #111869; we are
5+
in the process of narrowing that down to see if there is a root cause.
6+
7+
Triage done by **@pnkfelix**.
8+
Revision range: [cda5becc..1221e43b](https://perf.rust-lang.org/?start=cda5becc27cbc7106646fbc40aacea5e7896d954&end=1221e43bdf413f7c405e9b17ef19d76c88222098&absolute=false&stat=instructions%3Au)
9+
10+
**Summary**:
11+
12+
| (instructions:u) | mean | range | count |
13+
|:----------------------------------:|:-----:|:--------------:|:-----:|
14+
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.5%] | 19 |
15+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 2.7%] | 35 |
16+
| Improvements ✅ <br /> (primary) | -0.6% | [-1.2%, -0.1%] | 84 |
17+
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.1%, -0.1%] | 15 |
18+
| All ❌✅ (primary) | -0.4% | [-1.2%, 0.5%] | 103 |
19+
20+
21+
3 Regressions, 3 Improvements, 3 Mixed; 4 of them in rollups
22+
26 artifact comparisons made in total
23+
24+
#### Regressions
25+
26+
[rustc_ty_utils] Treat `drop_in_place`'s *mut argument like &mut when adding LLVM attributes [#111807](https://github.com/rust-lang/rust/pull/111807) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cda5becc27cbc7106646fbc40aacea5e7896d954&end=f3d597b31c0f101a02c230798afa31a36bdacbc6&stat=instructions:u)
27+
28+
| (instructions:u) | mean | range | count |
29+
|:----------------------------------:|:-----:|:--------------:|:-----:|
30+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 0.7%] | 17 |
31+
| Regressions ❌ <br /> (secondary) | 1.3% | [0.2%, 2.9%] | 6 |
32+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
33+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
34+
| All ❌✅ (primary) | 0.4% | [-0.2%, 0.7%] | 18 |
35+
36+
* already triaged last week
37+
38+
Rollup of 6 pull requests [#111869](https://github.com/rust-lang/rust/pull/111869) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f3d597b31c0f101a02c230798afa31a36bdacbc6&end=b08148f6a76010ea3d4e91d61245aa7aac59e4b4&stat=instructions:u)
39+
40+
| (instructions:u) | mean | range | count |
41+
|:----------------------------------:|:----:|:------------:|:-----:|
42+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 0.6%] | 12 |
43+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 2 |
44+
| Improvements ✅ <br /> (primary) | - | - | 0 |
45+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
46+
| All ❌✅ (primary) | 0.4% | [0.2%, 0.6%] | 12 |
47+
48+
* The five primary regressions over 0.4% are to diesel full and incr-full scenarios.
49+
* It is not clear what caused these regressions; pnkfelix started requesting individual rust-timer runs, but has not yet identified any root cause.
50+
51+
Support #[global_allocator] without the allocator shim [#86844](https://github.com/rust-lang/rust/pull/86844) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cade26637fe1c23965ce644299ed5200db7c92dd&end=a2b1646c597329d0a25efa3889b66650f65de1de&stat=instructions:u)
52+
53+
| (instructions:u) | mean | range | count |
54+
|:----------------------------------:|:----:|:------------:|:-----:|
55+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
56+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.3%, 0.7%] | 10 |
57+
| Improvements ✅ <br /> (primary) | - | - | 0 |
58+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
59+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 1 |
60+
61+
* The 0.2% hit to primary benchmark serde_derive check-incr_unchanged is easily justified by the feature addition here.
62+
* The more interesting question is 44 primary benchmarks saw a regression to their binary size. However, the only one of those of note, in my opinion, is ripgrep, which suffered a 0.43% increase to binary size on various opt scenarios.
63+
* marked as triaged.
64+
65+
#### Improvements
66+
67+
Rollup of 6 pull requests [#111919](https://github.com/rust-lang/rust/pull/111919) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c373194cb6d882dc455a588bcc29c92a96b50252&end=096309e6dc4378e175e524e963332d1a3830ed63&stat=instructions:u)
68+
69+
| (instructions:u) | mean | range | count |
70+
|:----------------------------------:|:-----:|:--------------:|:-----:|
71+
| Regressions ❌ <br /> (primary) | - | - | 0 |
72+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
73+
| Improvements ✅ <br /> (primary) | -0.7% | [-0.7%, -0.6%] | 2 |
74+
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 2 |
75+
| All ❌✅ (primary) | -0.7% | [-0.7%, -0.6%] | 2 |
76+
77+
* a small improvement to serde_derive check-{full, incr-full} that seems like its not noise, not completely.
78+
79+
fix: :bug: etc/bash_complettion -> src/etc/... to avoid copy error [#110906](https://github.com/rust-lang/rust/pull/110906) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=eb9da7bfa375ad58bcb946115f3191a2756785e5&end=d300bffa4f0036e9138ef752610d08fc63f87a77&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) | -0.8% | [-0.8%, -0.7%] | 2 |
86+
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.6%, -0.3%] | 6 |
87+
| All ❌✅ (primary) | -0.8% | [-0.8%, -0.7%] | 2 |
88+
89+
* lol helloworld check-{full, incr-unchanged} improved by [-0.80%, -0.74%].
90+
* based on the PR itself, we should consider this to be some confounding factor, not meaningful.
91+
92+
Rollup of 7 pull requests [#111960](https://github.com/rust-lang/rust/pull/111960) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a2b1646c597329d0a25efa3889b66650f65de1de&end=0004b3b984b19646c1f78b09ba497b7bd6e882c1&stat=instructions:u)
93+
94+
| (instructions:u) | mean | range | count |
95+
|:----------------------------------:|:-----:|:--------------:|:-----:|
96+
| Regressions ❌ <br /> (primary) | - | - | 0 |
97+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
98+
| Improvements ✅ <br /> (primary) | -0.5% | [-1.3%, -0.2%] | 65 |
99+
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.2%, -0.2%] | 18 |
100+
| All ❌✅ (primary) | -0.5% | [-1.3%, -0.2%] | 65 |
101+
102+
* a lot of primary improvements here, mostly to incr-{unchanged, patched} scenarios
103+
* fired off rust-timer run on specific PR just to see if it was root cause of improvement.
104+
105+
106+
#### Mixed
107+
108+
Rollup of 7 pull requests [#111882](https://github.com/rust-lang/rust/pull/111882) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=52dd1cde59ee86e5d61469ee1befe09c132c777d&end=d5699874dc07d2dfb262d007293853f73c171f7e&stat=instructions:u)
109+
110+
| (instructions:u) | mean | range | count |
111+
|:----------------------------------:|:-----:|:--------------:|:-----:|
112+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.3%] | 5 |
113+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
114+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.7%, -0.2%] | 18 |
115+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 9 |
116+
| All ❌✅ (primary) | -0.2% | [-0.7%, 0.3%] | 23 |
117+
118+
* regressions are to bitmaps {{check, debug}-full, {check, debug, opt}-incr-full}.
119+
* improvements clearly outweigh regressions here
120+
* marked as triaged
121+
122+
Preprocess and cache dominator tree [#111673](https://github.com/rust-lang/rust/pull/111673) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b3cbf7c8351dd48dc2e07a1cdc69620f8e40dd2f&end=97d328012b9ed9b7d481c40e84aa1f2c65b33ec8&stat=instructions:u)
123+
124+
| (instructions:u) | mean | range | count |
125+
|:----------------------------------:|:-----:|:--------------:|:-----:|
126+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 3 |
127+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.4%] | 7 |
128+
| Improvements ✅ <br /> (primary) | - | - | 0 |
129+
| Improvements ✅ <br /> (secondary) | -1.2% | [-1.2%, -1.2%] | 3 |
130+
| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 3 |
131+
132+
* primary benchmarks libc {check, debug}-full and bitmaps check-full regressed a little.
133+
* this pays a bit of upfront cost to avoid a O(n^2) pathology in other planned code.
134+
* marked as triaged.
135+
136+
rustc_privacy: Cleanups and perf improvements to `EmbargoVisitor` [#111260](https://github.com/rust-lang/rust/pull/111260) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=97d328012b9ed9b7d481c40e84aa1f2c65b33ec8&end=c373194cb6d882dc455a588bcc29c92a96b50252&stat=instructions:u)
137+
138+
| (instructions:u) | mean | range | count |
139+
|:----------------------------------:|:-----:|:--------------:|:-----:|
140+
| Regressions ❌ <br /> (primary) | - | - | 0 |
141+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.3%, 0.6%] | 9 |
142+
| Improvements ✅ <br /> (primary) | -0.4% | [-1.3%, -0.1%] | 67 |
143+
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.6%, -0.2%] | 15 |
144+
| All ❌✅ (primary) | -0.4% | [-1.3%, -0.1%] | 67 |
145+
146+
* already marked as triaged
147+
148+
#### Untriaged Pull Requests
149+
150+
- [#112083 Make `TrustedStep` require `Copy`](https://github.com/rust-lang/rust/pull/112083)
151+
- [#112016 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/112016)
152+
- [#112001 Enable MatchBranchSimplification](https://github.com/rust-lang/rust/pull/112001)
153+
- [#111882 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/111882)
154+
- [#111869 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/111869)
155+
- [#111813 MIR: opt-in normalization of `BasicBlock` and `Local` numbering](https://github.com/rust-lang/rust/pull/111813)
156+
- [#111673 Preprocess and cache dominator tree](https://github.com/rust-lang/rust/pull/111673)
157+
- [#111524 `ascii::Char`-ify the escaping code in `core`](https://github.com/rust-lang/rust/pull/111524)
158+
- [#111425 Populate effective visibilities in `rustc_privacy` (take 2)](https://github.com/rust-lang/rust/pull/111425)
159+
- [#111364 Remove the ThinLTO CU hack](https://github.com/rust-lang/rust/pull/111364)
160+
- [#111311 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/111311)
161+
- [#111306 Update hashbrown from 0.12.3 to 0.13.1 for std](https://github.com/rust-lang/rust/pull/111306)
162+
- [#111221 Combine three generalizer implementations](https://github.com/rust-lang/rust/pull/111221)
163+
- [#111007 Disable nrvo mir opt](https://github.com/rust-lang/rust/pull/111007)
164+
- [#110967 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/110967)
165+
- [#110546 Rollup of 10 pull requests](https://github.com/rust-lang/rust/pull/110546)
166+
- [#110542 resolve: Remove `module_children_untracked`](https://github.com/rust-lang/rust/pull/110542)
167+
- [#110440 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/110440)
168+
- [#110012 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/110012)
169+
- [#109900 Only enable ConstProp at mir-opt-level >= 2.](https://github.com/rust-lang/rust/pull/109900)
170+
- [#109732 Uplift `clippy::{drop,forget}_{ref,copy}` lints](https://github.com/rust-lang/rust/pull/109732)
171+
- [#109692 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/109692)
172+
- [#109588 Alloc `hir::Lit` in an arena to remove the destructor from `Expr`](https://github.com/rust-lang/rust/pull/109588)
173+
- [#109247 Permit MIR inlining without #[inline]](https://github.com/rust-lang/rust/pull/109247)
174+
- [#109097 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/109097)
175+
- [#108934 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/108934)
176+
- [#108872 Strengthen state tracking in const-prop](https://github.com/rust-lang/rust/pull/108872)
177+
- [#108830 Treat projections with infer as placeholder during fast reject in new solver](https://github.com/rust-lang/rust/pull/108830)
178+
- [#108587 Rollup of 10 pull requests](https://github.com/rust-lang/rust/pull/108587)
179+
- [#108080 Add a builtin `FnPtr` trait that is implemented for all function pointers](https://github.com/rust-lang/rust/pull/108080)

0 commit comments

Comments
 (0)