Skip to content

Commit 62972dc

Browse files
authored
Merge pull request #2195 from rust-lang/panstromek-patch-1
Add 2025-07-07 triage
2 parents 073221b + cecee52 commit 62972dc

File tree

1 file changed

+230
-0
lines changed

1 file changed

+230
-0
lines changed

triage/2025/2025-07-07.md

Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
# 2025-07-07 Triage Log
2+
3+
Busy week. Results are dominated by changes that trade some wins for some losses in small incremental scenarios. We also had a lot of noise and spurious small changes on various PRs. Some regressions come from perf related work where we expect to get some wins back later.
4+
5+
Triage done by **@panstromek**.
6+
Revision range: [ad3b7257..0d11be5a](https://perf.rust-lang.org/?start=ad3b7257615c28aaf8212a189ec032b8af75de51&end=0d11be5aabe0cd49609fff5fce57c4691a22fe55&absolute=false&stat=instructions%3Au)
7+
8+
**Summary**:
9+
10+
Note: We switched to a new benchmark machine at the begining of the period. We show summary based on slightly adjusted range [6988a8fe..8df4a58a](https://perf.rust-lang.org/?start=6988a8fea774a2a20ebebddb7dbf15dd6ef594f9&end=8df4a58ac47b778b093652d6190a6f9d54638774&absolute=false&stat=instructions%3Au) to avoid misleading comparisons from different machines.
11+
12+
| (instructions:u) | mean | range | count |
13+
|:----------------------------------:|:-----:|:---------------:|:-----:|
14+
| Regressions ❌ <br /> (primary) | 1.1% | [0.2%, 4.3%] | 128 |
15+
| Regressions ❌ <br /> (secondary) | 1.0% | [0.2%, 3.9%] | 84 |
16+
| Improvements ✅ <br /> (primary) | -3.5% | [-7.2%, -0.2%] | 48 |
17+
| Improvements ✅ <br /> (secondary) | -5.1% | [-42.6%, -0.2%] | 68 |
18+
| All ❌✅ (primary) | -0.2% | [-7.2%, 4.3%] | 176 |
19+
20+
3 Regressions, 3 Improvements, 11 Mixed; 6 of them in rollups
21+
44 artifact comparisons made in total
22+
23+
#### Regressions
24+
25+
Rollup of 8 pull requests [#143267](https://github.com/rust-lang/rust/pull/143267) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6988a8fea774a2a20ebebddb7dbf15dd6ef594f9&end=f46ce66fcc3d6058f90ac5bf0930f940f1e7b0ca&stat=instructions:u)
26+
27+
| (instructions:u) | mean | range | count |
28+
|:----------------------------------:|:----:|:------------:|:-----:|
29+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
30+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 1.1%] | 18 |
31+
| Improvements ✅ <br /> (primary) | - | - | 0 |
32+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
33+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 1 |
34+
35+
The regressed benchmarks are small and fairly aritifical. Some of the results look like noise and returned to previous state. I don't think this is worth investigating more.
36+
37+
Add new self-profiling event to cheaply aggregate query cache hit counts [#142978](https://github.com/rust-lang/rust/pull/142978) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f51c9870bab634afb9e7a262b6ca7816bb9e940d&end=b94bd12401d26ccf1c3b04ceb4e950b0ff7c8d29&stat=instructions:u)
38+
39+
| (instructions:u) | mean | range | count |
40+
|:----------------------------------:|:----:|:------------:|:-----:|
41+
| Regressions ❌ <br /> (primary) | 0.3% | [0.1%, 0.4%] | 17 |
42+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.3%, 0.5%] | 7 |
43+
| Improvements ✅ <br /> (primary) | - | - | 0 |
44+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
45+
| All ❌✅ (primary) | 0.3% | [0.1%, 0.4%] | 17 |
46+
47+
Seems like overhead of the measurement. Pinged the author, but seems like we can't do much about that.
48+
49+
Do not unify borrowed locals in CopyProp. [#143509](https://github.com/rust-lang/rust/pull/143509) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=de031bbcb161b0b7fc0eb16f77b02ce9fbdf4c9e&end=a84ab0ce6c4557a2f01a3a6c3fdb0f92098db78d&stat=instructions:u)
50+
51+
| (instructions:u) | mean | range | count |
52+
|:----------------------------------:|:-----:|:--------------:|:-----:|
53+
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.3%] | 21 |
54+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 1.1%] | 38 |
55+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
56+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
57+
| All ❌✅ (primary) | 0.1% | [-0.4%, 0.3%] | 23 |
58+
59+
Soundness fix in an mir-opt pass. Posted a comment to make sure these are expected.
60+
61+
#### Improvements
62+
63+
Weekly `cargo update` [#142857](https://github.com/rust-lang/rust/pull/142857) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a413f77285c0ab551cf58db729e054f43150dd50&end=48aee7e383503c234cce4206dee9f19f57edb617&stat=instructions:u)
64+
65+
| (instructions:u) | mean | range | count |
66+
|:----------------------------------:|:-----:|:--------------:|:-----:|
67+
| Regressions ❌ <br /> (primary) | - | - | 0 |
68+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
69+
| Improvements ✅ <br /> (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
70+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
71+
| All ❌✅ (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
72+
73+
74+
Allow `enum` and `union` literals to also create SSA values [#138759](https://github.com/rust-lang/rust/pull/138759) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d98a5da813da67eb189387b8ccfb73cf481275d8&end=733b47ea4b1b86216f14ef56e49440c33933f230&stat=instructions:u)
75+
76+
| (instructions:u) | mean | range | count |
77+
|:----------------------------------:|:-----:|:--------------:|:-----:|
78+
| Regressions ❌ <br /> (primary) | - | - | 0 |
79+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
80+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 6 |
81+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.3%] | 3 |
82+
| All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 6 |
83+
84+
85+
Canonicalize input ty/ct infer/placeholder in the root universe [#142732](https://github.com/rust-lang/rust/pull/142732) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=175e04331be56c5b4bdf77478434b1a5e0556770&end=5adb489a8034f7b56b29f3b28af0813c866f679c&stat=instructions:u)
86+
87+
| (instructions:u) | mean | range | count |
88+
|:----------------------------------:|:-----:|:--------------:|:-----:|
89+
| Regressions ❌ <br /> (primary) | - | - | 0 |
90+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
91+
| Improvements ✅ <br /> (primary) | - | - | 0 |
92+
| Improvements ✅ <br /> (secondary) | -1.0% | [-1.8%, -0.3%] | 13 |
93+
| All ❌✅ (primary) | - | - | 0 |
94+
95+
96+
#### Mixed
97+
98+
Introduce `ByteSymbol` [#141875](https://github.com/rust-lang/rust/pull/141875) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fdad98d7463eebcdca94716ec3036c38a8d66f50&end=6988a8fea774a2a20ebebddb7dbf15dd6ef594f9&stat=instructions:u)
99+
100+
| (instructions:u) | mean | range | count |
101+
|:----------------------------------:|:-----:|:--------------:|:-----:|
102+
| Regressions ❌ <br /> (primary) | - | - | 0 |
103+
| Regressions ❌ <br /> (secondary) | 1.7% | [1.4%, 2.1%] | 5 |
104+
| Improvements ✅ <br /> (primary) | -1.5% | [-6.4%, -0.2%] | 264 |
105+
| Improvements ✅ <br /> (secondary) | -1.9% | [-6.1%, -0.3%] | 298 |
106+
| All ❌✅ (primary) | -1.5% | [-6.4%, -0.2%] | 264 |
107+
108+
First PR benchmarked on new machine, these changes are not real as they compare results from different machines. Pre-merge results are much less significant.
109+
110+
Start moving wf checking away from HIR [#142030](https://github.com/rust-lang/rust/pull/142030) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=076a0a26fd6f4c445647a33d6daaac56f732ac05&end=4e973370053a5fe87ee96d43c506623e9bd1eb9d&stat=instructions:u)
111+
112+
| (instructions:u) | mean | range | count |
113+
|:----------------------------------:|:-----:|:--------------:|:-----:|
114+
| Regressions ❌ <br /> (primary) | - | - | 0 |
115+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.3%, 0.6%] | 3 |
116+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
117+
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.1%, -0.3%] | 8 |
118+
| All ❌✅ (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
119+
120+
Marked as triaged by author with comment: Improvements outweigh the regressions. And measured time is improved on the only benchmark that regressed instructions.
121+
122+
Rollup of 11 pull requests [#143338](https://github.com/rust-lang/rust/pull/143338) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6677875279b560442a07a08d5119b4cd6b3c5593&end=25face9808491588e59b6d7844f2185b09eef479&stat=instructions:u)
123+
124+
| (instructions:u) | mean | range | count |
125+
|:----------------------------------:|:-----:|:--------------:|:-----:|
126+
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.4%] | 2 |
127+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.4%] | 5 |
128+
| Improvements ✅ <br /> (primary) | - | - | 0 |
129+
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
130+
| All ❌✅ (primary) | 0.4% | [0.3%, 0.4%] | 2 |
131+
132+
Most of the regressions are probably safe to ignore (small, secondary or noise). The biggest one is in cargo, where the regression is in LLVM, which indicates something probably changed in relation to optmizations or codegen scheduling. Most of the code changes here seem unrelated, though. I suspect it could be one of the standard library changes in first three PRs.
133+
134+
This seems to have returned back to previous state with a little improvement on top in https://github.com/rust-lang/rust/pull/143509, detailed results show inverse numbers on the same LLVM-related queries, but since that PR changed mir optimizations, it probably has some effect on that, too.
135+
136+
Rollup of 6 pull requests [#143363](https://github.com/rust-lang/rust/pull/143363) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9e64506923cb0f18c2bb2b934edecff525774acc&end=a413f77285c0ab551cf58db729e054f43150dd50&stat=instructions:u)
137+
138+
| (instructions:u) | mean | range | count |
139+
|:----------------------------------:|:-----:|:--------------:|:-----:|
140+
| Regressions ❌ <br /> (primary) | 3.0% | [3.0%, 3.0%] | 1 |
141+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
142+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.5%, -0.2%] | 11 |
143+
| Improvements ✅ <br /> (secondary) | -0.4% | [-1.1%, -0.2%] | 14 |
144+
| All ❌✅ (primary) | -0.0% | [-0.5%, 3.0%] | 12 |
145+
146+
Already triaged by **@lqd**: The usual clap-derive noise, and it returned to normal on the next merge.
147+
148+
Rollup of 5 pull requests [#143390](https://github.com/rust-lang/rust/pull/143390) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=48aee7e383503c234cce4206dee9f19f57edb617&end=da58c051315268a197ce280f6ba07bbd03c66535&stat=instructions:u)
149+
150+
| (instructions:u) | mean | range | count |
151+
|:----------------------------------:|:-----:|:--------------:|:-----:|
152+
| Regressions ❌ <br /> (primary) | 3.0% | [3.0%, 3.0%] | 1 |
153+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
154+
| Improvements ✅ <br /> (primary) | - | - | 0 |
155+
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.2%, -0.2%] | 8 |
156+
| All ❌✅ (primary) | 3.0% | [3.0%, 3.0%] | 1 |
157+
158+
Triaged by **@Kobzol**: `clap_derive` bimodal noise.
159+
160+
MIR inliner maintains unused var_debug_info [#142890](https://github.com/rust-lang/rust/pull/142890) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=da58c051315268a197ce280f6ba07bbd03c66535&end=837c5dd7de03aa97190593aef4e70d53e1bb574b&stat=instructions:u)
161+
162+
| (instructions:u) | mean | range | count |
163+
|:----------------------------------:|:-----:|:--------------:|:-----:|
164+
| Regressions ❌ <br /> (primary) | 1.8% | [1.8%, 1.8%] | 1 |
165+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
166+
| Improvements ✅ <br /> (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
167+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
168+
| All ❌✅ (primary) | -0.6% | [-2.9%, 1.8%] | 2 |
169+
170+
`clap_derive` improvement is bimodal noise. `ripgrep` regression doesn't make sense to me. We either do less work or the same amount of work here (not sure which debuginfo option we use for this benchmark). Wall time has no relevant changes, though, so I assume it's spurious.
171+
172+
Avoid depending on forever-red DepNode when encoding metadata. [#143247](https://github.com/rust-lang/rust/pull/143247) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1b61d43bdbf875183b1f436302d62ff93f9a6bba&end=556d20a834126d2d0ac20743b9792b8474d6d03c&stat=instructions:u)
173+
174+
| (instructions:u) | mean | range | count |
175+
|:----------------------------------:|:------:|:----------------:|:-----:|
176+
| Regressions ❌ <br /> (primary) | 0.6% | [0.2%, 2.0%] | 61 |
177+
| Regressions ❌ <br /> (secondary) | 1.1% | [0.2%, 2.1%] | 21 |
178+
| Improvements ✅ <br /> (primary) | - | - | 0 |
179+
| Improvements ✅ <br /> (secondary) | -25.5% | [-42.6%, -16.4%] | 6 |
180+
| All ❌✅ (primary) | 0.6% | [0.2%, 2.0%] | 61 |
181+
182+
Part of recent metadata related perf work. Regressions are expected and will be investigated in a followup.
183+
184+
Make metadata a workproduct and reuse it [#114669](https://github.com/rust-lang/rust/pull/114669) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0c4fa2690de945f062668acfc36b3f8cfbd013e2&end=e3843659e9f65f589d184d1221ac6149d5fa07b5&stat=instructions:u)
185+
186+
| (instructions:u) | mean | range | count |
187+
|:----------------------------------:|:-----:|:---------------:|:-----:|
188+
| Regressions ❌ <br /> (primary) | 1.0% | [0.2%, 2.2%] | 76 |
189+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.3%, 1.7%] | 23 |
190+
| Improvements ✅ <br /> (primary) | -4.3% | [-7.5%, -1.1%] | 45 |
191+
| Improvements ✅ <br /> (secondary) | -4.9% | [-11.6%, -0.5%] | 36 |
192+
| All ❌✅ (primary) | -1.0% | [-7.5%, 2.2%] | 121 |
193+
194+
Regressions outweigh improvements. Note that lot of the regressions are on very small benchmarks, so the negative effects are somewhat exaggerated. Based on PR description, this change also targets worspace use case that is not represented well in our benchmarks.
195+
196+
Remove `Symbol` from `Named` variant of `BoundRegionKind`/`LateParamRegionKind` [#139598](https://github.com/rust-lang/rust/pull/139598) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=733b47ea4b1b86216f14ef56e49440c33933f230&end=f0b67dd97d74610ee4185cf01c775a563c2017a2&stat=instructions:u)
197+
198+
| (instructions:u) | mean | range | count |
199+
|:----------------------------------:|:-----:|:--------------:|:-----:|
200+
| Regressions ❌ <br /> (primary) | 0.5% | [0.1%, 3.2%] | 13 |
201+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 0.6%] | 23 |
202+
| Improvements ✅ <br /> (primary) | - | - | 0 |
203+
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.1%] | 7 |
204+
| All ❌✅ (primary) | 0.5% | [0.1%, 3.2%] | 13 |
205+
206+
Pre merge results don't match post merge results. Most regressions are in doc benchmarks, impact seems quite low. I left a comment asking for next steps.
207+
208+
Rollup of 6 pull requests [#143507](https://github.com/rust-lang/rust/pull/143507) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=75d5834a6c571cb0455acb5128ad51118fcbf2be&end=febb10d0a2d29278135676783f6a22eb83295981&stat=instructions:u)
209+
210+
| (instructions:u) | mean | range | count |
211+
|:----------------------------------:|:-----:|:--------------:|:-----:|
212+
| Regressions ❌ <br /> (primary) | - | - | 0 |
213+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.3%] | 2 |
214+
| Improvements ✅ <br /> (primary) | - | - | 0 |
215+
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.4%, -0.2%] | 8 |
216+
| All ❌✅ (primary) | - | - | 0 |
217+
218+
Improvements outweigh regressions, changes are tiny. `coercions` regressions seems to be noise. I don't think this is worth digging into.
219+
220+
Rollup of 6 pull requests [#143521](https://github.com/rust-lang/rust/pull/143521) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e804cd4a5f1a5b658ddca245c80bef96a576c018&end=c83e217d268d25960a0c79c6941bcb3917a6a0af&stat=instructions:u)
221+
222+
| (instructions:u) | mean | range | count |
223+
|:----------------------------------:|:-----:|:--------------:|:-----:|
224+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
225+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.3%] | 2 |
226+
| Improvements ✅ <br /> (primary) | - | - | 0 |
227+
| Improvements ✅ <br /> (secondary) | -1.2% | [-1.9%, -0.0%] | 9 |
228+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 1 |
229+
230+
`coercions` regressions seems to be noise, looks like a new bimodailty. Other changes are tiny, I don't think this is worth investigating.

0 commit comments

Comments
 (0)