Skip to content

Commit e6cd6e8

Browse files
authored
Merge pull request #1501 from Mark-Simulacrum/triage
Add triage for this week
2 parents c4847d1 + 472dbb5 commit e6cd6e8

File tree

1 file changed

+183
-0
lines changed

1 file changed

+183
-0
lines changed

triage/2022-11-29.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
# 2022-11-29 Triage Log
2+
3+
A relatively quiet week for performance, with the notable exception of "Avoid
4+
`GenFuture` shim when compiling async constructs [#104321](https://github.com/rust-lang/rust/pull/104321)"
5+
which brought sizeable wins on a number of stress test benchmarks. It probably
6+
won't be of huge benefit to most codebases, but should provide smaller wins to
7+
folks with large amounts of async-generated futures.
8+
9+
Triage done by **@simulacrum**.
10+
Revision range: [a78c9bee4d9d51a3891bd8ecae1f28a93b83653b..8a09420ac48658cad726e0a6997687ceac4151e3](https://perf.rust-lang.org/?start=a78c9bee4d9d51a3891bd8ecae1f28a93b83653b&end=8a09420ac48658cad726e0a6997687ceac4151e3&absolute=false&stat=instructions%3Au)
11+
12+
**Summary**:
13+
14+
| (instructions:u) | mean | range | count |
15+
|:----------------------------------:|:-----:|:---------------:|:-----:|
16+
| Regressions ❌ <br /> (primary) | 1.0% | [0.3%, 1.5%] | 11 |
17+
| Regressions ❌ <br /> (secondary) | 1.8% | [0.4%, 3.0%] | 25 |
18+
| Improvements ✅ <br /> (primary) | -1.0% | [-3.8%, -0.3%] | 148 |
19+
| Improvements ✅ <br /> (secondary) | -6.7% | [-87.7%, -0.3%] | 107 |
20+
| All ❌✅ (primary) | -0.9% | [-3.8%, 1.5%] | 159 |
21+
22+
23+
3 Regressions, 3 Improvements, 6 Mixed; 2 of them in rollups
24+
43 artifact comparisons made in total
25+
26+
#### Regressions
27+
28+
Rollup of 6 pull requests [#104758](https://github.com/rust-lang/rust/pull/104758) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=008bc1d587b4f9d7197eb159922dd2080eea9284&end=3f2b2eee8f46f2252d2919d7a57bf3068d7df285&stat=instructions:u)
29+
30+
| (instructions:u) | mean | range | count |
31+
|:----------------------------------:|:----:|:------------:|:-----:|
32+
| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 1 |
33+
| Regressions ❌ <br /> (secondary) | 2.1% | [0.6%, 7.1%] | 13 |
34+
| Improvements ✅ <br /> (primary) | - | - | 0 |
35+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
36+
| All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 1 |
37+
38+
This PR was a perf regression (see the report here
39+
https://github.com/rust-lang/rust/pull/104758#issuecomment-1325100344). It's
40+
relatively small and mostly limited to secondary workloads so I'm marking as
41+
triaged.
42+
43+
Branch Clause from Predicate [#104846](https://github.com/rust-lang/rust/pull/104846) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e704e95250ff4e949214f390a88f21d08052bea1&end=051cab2b842113b18da28259f4b85d0a7556f7f1&stat=instructions:u)
44+
45+
| (instructions:u) | mean | range | count |
46+
|:----------------------------------:|:----:|:------------:|:-----:|
47+
| Regressions ❌ <br /> (primary) | 0.8% | [0.2%, 2.4%] | 38 |
48+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.3%, 0.8%] | 5 |
49+
| Improvements ✅ <br /> (primary) | - | - | 0 |
50+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
51+
| All ❌✅ (primary) | 0.8% | [0.2%, 2.4%] | 38 |
52+
53+
Unexpected regression, PR reviewer and author are going to look into it.
54+
55+
Add `ConstKind::Expr` [#99798](https://github.com/rust-lang/rust/pull/99798) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8681d4cffcd23bbe619984ab62772a91827a40dc&end=aff003becd8b6bf803202e958623031274ad69c9&stat=instructions:u)
56+
57+
| (instructions:u) | mean | range | count |
58+
|:----------------------------------:|:-----:|:--------------:|:-----:|
59+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.5%] | 6 |
60+
| Regressions ❌ <br /> (secondary) | 0.9% | [0.3%, 1.6%] | 21 |
61+
| Improvements ✅ <br /> (primary) | - | - | 0 |
62+
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 1 |
63+
| All ❌✅ (primary) | 0.3% | [0.2%, 0.5%] | 6 |
64+
65+
Previous perf runs showed slight improvements, but the post-merge one shows regressions. They are mostly among secondary benchmarks.
66+
67+
#### Improvements
68+
69+
Fix perf regression by correctly matching keywords [#104410](https://github.com/rust-lang/rust/pull/104410)
70+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d121aa3b5584eb919a4aaf64dbae0ea1e8e30231&end=70f8737b2f5d3bf7d6b784fad00b663b7ff9feda&stat=instructions:u)
71+
72+
| (instructions:u) | mean | range | count |
73+
|:----------------------------------:|:-----:|:--------------:|:-----:|
74+
| Regressions ❌ <br /> (primary) | - | - | 0 |
75+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
76+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 32 |
77+
| Improvements ✅ <br /> (secondary) | -0.8% | [-1.1%, -0.5%] | 8 |
78+
| All ❌✅ (primary) | -0.3% | [-0.5%, -0.2%] | 32 |
79+
80+
81+
Use an IndexVec to cache queries with index-like key [#103808](https://github.com/rust-lang/rust/pull/103808) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fd815a5091eb4d49cd317f8ad272f17b7a5f550d&end=341d8b8a2c290b4535e965867e876b095461ff6e&stat=instructions:u)
82+
83+
| (instructions:u) | mean | range | count |
84+
|:----------------------------------:|:-----:|:--------------:|:-----:|
85+
| Regressions ❌ <br /> (primary) | - | - | 0 |
86+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
87+
| Improvements ✅ <br /> (primary) | -0.8% | [-2.3%, -0.2%] | 133 |
88+
| Improvements ✅ <br /> (secondary) | -1.2% | [-7.8%, -0.2%] | 105 |
89+
| All ❌✅ (primary) | -0.8% | [-2.3%, -0.2%] | 133 |
90+
91+
92+
Avoid `GenFuture` shim when compiling async constructs [#104321](https://github.com/rust-lang/rust/pull/104321) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1dda298ad39a64e019a3511139c5b13ac0a18e54&end=5dfb4b0afaf6acace0845d00e85a934fb4289d83&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 |
99+
| Improvements ✅ <br /> (secondary) | -28.0% | [-87.8%, -1.9%] | 22 |
100+
| All ❌✅ (primary) | - | - | 0 |
101+
102+
103+
#### Mixed
104+
105+
optimize field ordering by grouping `m*2^n`-sized fields with equivalently aligned ones [#102750](https://github.com/rust-lang/rust/pull/102750) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3f2b2eee8f46f2252d2919d7a57bf3068d7df285&end=4e0d0d757e2f1b61ec809420b006545a9f8974c0&stat=instructions:u)
106+
107+
| (instructions:u) | mean | range | count |
108+
|:----------------------------------:|:-----:|:--------------:|:-----:|
109+
| Regressions ❌ <br /> (primary) | 0.5% | [0.3%, 0.8%] | 4 |
110+
| Regressions ❌ <br /> (secondary) | 1.2% | [0.3%, 2.3%] | 26 |
111+
| Improvements ✅ <br /> (primary) | -0.5% | [-2.2%, -0.2%] | 44 |
112+
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.2%, -0.1%] | 22 |
113+
| All ❌✅ (primary) | -0.4% | [-2.2%, 0.8%] | 48 |
114+
115+
Some followup discussion on https://github.com/rust-lang/rust/issues/104807 but
116+
overall a roughly neutral change.
117+
118+
privacy: Fix more (potential) issues with effective visibilities [#104602](https://github.com/rust-lang/rust/pull/104602)
119+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=af63e3b39f3990418ad8e0a1b1fa8a722a7c50b0&end=41e0363055ade59584cff667c79f64937e6ef3f9&stat=instructions:u)
120+
121+
| (instructions:u) | mean | range | count |
122+
|:----------------------------------:|:-----:|:--------------:|:-----:|
123+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.3%] | 8 |
124+
| Regressions ❌ <br /> (secondary) | 2.2% | [0.3%, 3.6%] | 17 |
125+
| Improvements ✅ <br /> (primary) | -1.0% | [-1.4%, -0.5%] | 13 |
126+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
127+
| All ❌✅ (primary) | -0.5% | [-1.4%, 0.3%] | 21 |
128+
129+
> This fixes correctness issues, and the regressions are mostly in
130+
> unused-warnings which is a stress test where 3% doesn't really matter. Plus
131+
> libc got a bit faster. So overall, not a performance concern.
132+
133+
Manually implement PartialEq for `Option<T>` and specialize non-nullable types [#103556](https://github.com/rust-lang/rust/pull/103556)
134+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f8a2e491ebec34113563cf8683f6fec2646cebb1&end=8841bee954ecf0e6820c9990feb3a76cb04e7d96&stat=instructions:u)
135+
136+
| (instructions:u) | mean | range | count |
137+
|:----------------------------------:|:-----:|:--------------:|:-----:|
138+
| Regressions ❌ <br /> (primary) | 2.1% | [2.1%, 2.1%] | 1 |
139+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
140+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 2 |
141+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.4%, -0.3%] | 2 |
142+
| All ❌✅ (primary) | 0.5% | [-0.4%, 2.1%] | 3 |
143+
144+
Relatively few relatively small changes, no further investigation needed.
145+
146+
Stop peeling the last iteration of the loop in `Vec::resize_with` [#104818](https://github.com/rust-lang/rust/pull/104818)
147+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c0e9c86b3f3e96267ba2cd80f95f362ef0cce40b&end=faf1891deb2633fe4040de8b71fd7b2045c45dc5&stat=instructions:u)
148+
149+
| (instructions:u) | mean | range | count |
150+
|:----------------------------------:|:-----:|:--------------:|:-----:|
151+
| Regressions ❌ <br /> (primary) | 0.8% | [0.8%, 0.8%] | 1 |
152+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
153+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.3%] | 3 |
154+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.4%, -0.1%] | 7 |
155+
| All ❌✅ (primary) | -0.0% | [-0.3%, 0.8%] | 4 |
156+
157+
> Perf changes are very small, and wins slightly outweigh losses.
158+
159+
Update VecDeque implementation to use head+len instead of head+tail [#102991](https://github.com/rust-lang/rust/pull/102991)
160+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=dd12cd6dc631b5e964d541d370ca863c2242376c&end=69df0f2c2f665d7f4e38a3579a81d4efc0d81034&stat=instructions:u)
161+
162+
| (instructions:u) | mean | range | count |
163+
|:----------------------------------:|:-----:|:--------------:|:-----:|
164+
| Regressions ❌ <br /> (primary) | - | - | 0 |
165+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.2%, 1.4%] | 4 |
166+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 3 |
167+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 3 |
168+
| All ❌✅ (primary) | -0.3% | [-0.5%, -0.2%] | 3 |
169+
170+
Performance looks like overall neutral to slight win.
171+
172+
Rollup of 6 pull requests [#105008](https://github.com/rust-lang/rust/pull/105008)
173+
[(Comparison Link)](https://perf.rust-lang.org/compare.html?start=69df0f2c2f665d7f4e38a3579a81d4efc0d81034&end=8a09420ac48658cad726e0a6997687ceac4151e3&stat=instructions:u)
174+
175+
| (instructions:u) | mean | range | count |
176+
|:----------------------------------:|:-----:|:--------------:|:-----:|
177+
| Regressions ❌ <br /> (primary) | 0.6% | [0.2%, 0.9%] | 8 |
178+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
179+
| Improvements ✅ <br /> (primary) | -0.9% | [-0.9%, -0.8%] | 2 |
180+
| Improvements ✅ <br /> (secondary) | -2.4% | [-2.7%, -2.1%] | 6 |
181+
| All ❌✅ (primary) | 0.3% | [-0.9%, 0.9%] | 10 |
182+
183+
keccak improvements may be spurious but overall neutral so no further investigation warranted.

0 commit comments

Comments
 (0)