Skip to content

Commit 7735908

Browse files
Add triage for this week
1 parent b1def84 commit 7735908

File tree

1 file changed

+250
-0
lines changed

1 file changed

+250
-0
lines changed

triage/2025/2025-10-20.md

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
# 2025-10-21 Triage Log
2+
3+
Fairly busy week, with lots of mixed results. However, overall we ended with a
4+
slight improvement on average.
5+
6+
Triage done by **@simulacrum**.
7+
Revision range: [956f47c3..4068bafe](https://perf.rust-lang.org/?start=956f47c32f1bd97b22cd702d7ccf78f0f0d42c34&end=4068bafedd8ba724e332a5221c06a6fa531a30d2&absolute=false&stat=instructions%3Au)
8+
9+
**Summary**:
10+
11+
| (instructions:u) | mean | range | count |
12+
|:----------------------------------:|:-----:|:--------------:|:-----:|
13+
| Regressions ❌ <br /> (primary) | 0.5% | [0.2%, 0.8%] | 21 |
14+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.1%, 2.5%] | 78 |
15+
| Improvements ✅ <br /> (primary) | -0.8% | [-7.3%, -0.1%] | 88 |
16+
| Improvements ✅ <br /> (secondary) | -0.6% | [-5.4%, -0.1%] | 87 |
17+
| All ❌✅ (primary) | -0.6% | [-7.3%, 0.8%] | 109 |
18+
19+
2 Regressions, 5 Improvements, 10 Mixed; 5 of them in rollups
20+
39 artifact comparisons made in total
21+
22+
#### Regressions
23+
24+
Rollup of 11 pull requests [#147745](https://github.com/rust-lang/rust/pull/147745) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=57ef8d642d21965304bde849bab4f389b4353e27&end=402ce0ef07d5db9ba26ae5c37ce6aff0c9002052&stat=instructions:u)
25+
26+
| (instructions:u) | mean | range | count |
27+
|:----------------------------------:|:-----:|:--------------:|:-----:|
28+
| Regressions ❌ <br /> (primary) | - | - | 0 |
29+
| Regressions ❌ <br /> (secondary) | 1.0% | [0.8%, 2.0%] | 7 |
30+
| Improvements ✅ <br /> (primary) | - | - | 0 |
31+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
32+
| All ❌✅ (primary) | - | - | 0 |
33+
34+
Suspecting https://github.com/rust-lang/rust/pull/147718, but since regressions
35+
are only to match-stress it's unlikely to be particularly interesting. Possibly
36+
a missing #[inline] to regain instruction counts.
37+
38+
deduced_param_attrs: check Freeze on monomorphic types. [#147695](https://github.com/rust-lang/rust/pull/147695) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c8a31b780d5415358566a20b94912620a3f27067&end=0c0f27afd42c977d5ea5f6df2c8f5bc192bdc67a&stat=instructions:u)
39+
40+
| (instructions:u) | mean | range | count |
41+
|:----------------------------------:|:----:|:------------:|:-----:|
42+
| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.4%] | 3 |
43+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
44+
| Improvements ✅ <br /> (primary) | - | - | 0 |
45+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
46+
| All ❌✅ (primary) | 0.3% | [0.3%, 0.4%] | 3 |
47+
48+
Appears to be a regression limited to the bitmaps benchmark. Most other
49+
benchmarks, though below noise threshold, are slightly improved or neutral. The
50+
initial perf run in PR was also a strict improvement. It doesn't seem like a
51+
spurious regression, but also doesn't seem like it merits further followup.
52+
53+
#### Improvements
54+
55+
Restrict sysroot crate imports to those defined in this repo. [#143548](https://github.com/rust-lang/rust/pull/143548) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4f08307f6efdbca86d27beecd257fad9913192e9&end=28d0a4a205f9e511ad2f51ee79a4aa19a704a455&stat=instructions:u)
56+
57+
| (instructions:u) | mean | range | count |
58+
|:----------------------------------:|:-----:|:--------------:|:-----:|
59+
| Regressions ❌ <br /> (primary) | - | - | 0 |
60+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
61+
| Improvements ✅ <br /> (primary) | -2.8% | [-2.8%, -2.8%] | 1 |
62+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
63+
| All ❌✅ (primary) | -2.8% | [-2.8%, -2.8%] | 1 |
64+
65+
66+
rustdoc-search: stringdex 0.0.2 [#147660](https://github.com/rust-lang/rust/pull/147660) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a41214f9bd7ce869d21898f31107f92c90a9112f&end=f46475914de626785090a05ae037578aaa119fc8&stat=instructions:u)
67+
68+
| (instructions:u) | mean | range | count |
69+
|:----------------------------------:|:-----:|:--------------:|:-----:|
70+
| Regressions ❌ <br /> (primary) | - | - | 0 |
71+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
72+
| Improvements ✅ <br /> (primary) | -0.8% | [-2.5%, -0.2%] | 5 |
73+
| Improvements ✅ <br /> (secondary) | -1.1% | [-5.7%, -0.3%] | 9 |
74+
| All ❌✅ (primary) | -0.8% | [-2.5%, -0.2%] | 5 |
75+
76+
77+
Rollup of 6 pull requests [#147842](https://github.com/rust-lang/rust/pull/147842) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0c0f27afd42c977d5ea5f6df2c8f5bc192bdc67a&end=6380899f32599ea25615d4ccd708d0e8da652b0c&stat=instructions:u)
78+
79+
| (instructions:u) | mean | range | count |
80+
|:----------------------------------:|:-----:|:--------------:|:-----:|
81+
| Regressions ❌ <br /> (primary) | - | - | 0 |
82+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
83+
| Improvements ✅ <br /> (primary) | - | - | 0 |
84+
| Improvements ✅ <br /> (secondary) | -0.4% | [-1.1%, -0.1%] | 8 |
85+
| All ❌✅ (primary) | - | - | 0 |
86+
87+
88+
Rollup of 4 pull requests [#147884](https://github.com/rust-lang/rust/pull/147884) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c6efb9019b3169fc672248339dbbf13e6a134de3&end=4ddbb6051271237f4192333e06b8129148995eef&stat=instructions:u)
89+
90+
| (instructions:u) | mean | range | count |
91+
|:----------------------------------:|:-----:|:--------------:|:-----:|
92+
| Regressions ❌ <br /> (primary) | - | - | 0 |
93+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
94+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.2%] | 2 |
95+
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.1%] | 5 |
96+
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 2 |
97+
98+
Add a `!=` check to `ChunkedBitSet::union`. [#147619](https://github.com/rust-lang/rust/pull/147619) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5413f7d39cae07b7b3809973fe201d21960a18aa&end=4f08307f6efdbca86d27beecd257fad9913192e9&stat=instructions:u)
99+
100+
| (instructions:u) | mean | range | count |
101+
|:----------------------------------:|:-----:|:--------------:|:-----:|
102+
| Regressions ❌ <br /> (primary) | 2.9% | [2.9%, 2.9%] | 1 |
103+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
104+
| Improvements ✅ <br /> (primary) | -3.5% | [-9.3%, -0.1%] | 8 |
105+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
106+
| All ❌✅ (primary) | -2.8% | [-9.3%, 2.9%] | 9 |
107+
108+
One regression looks spurious so manually moved to improvements.
109+
110+
#### Mixed
111+
112+
Change int-to-ptr transmute lowering back to inttoptr [#147541](https://github.com/rust-lang/rust/pull/147541) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9b8264604ef800b5539d04bf78ebdef5c5fa4968&end=ed1d94311e7ed53eabb5667ef577802d88d1aaee&stat=instructions:u)
113+
114+
| (instructions:u) | mean | range | count |
115+
|:----------------------------------:|:-----:|:--------------:|:-----:|
116+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
117+
| Regressions ❌ <br /> (secondary) | 2.2% | [0.1%, 2.9%] | 8 |
118+
| Improvements ✅ <br /> (primary) | - | - | 0 |
119+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.6%, -0.1%] | 12 |
120+
| All ❌✅ (primary) | 0.2% | [0.2%, 0.2%] | 1 |
121+
122+
Mitigation for soundness problems, costs are worth it.
123+
124+
only call polymorphic array iter drop machinery when the type requires it [#147353](https://github.com/rust-lang/rust/pull/147353) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4b94758d2ba7d0ef71ccf5fde29ce4bc5d6fe2a4&end=fb24b04b096a980bffd80154f6aba22fd07cb3d9&stat=instructions:u)
125+
126+
| (instructions:u) | mean | range | count |
127+
|:----------------------------------:|:-----:|:--------------:|:-----:|
128+
| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 2 |
129+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 1.1%] | 4 |
130+
| Improvements ✅ <br /> (primary) | - | - | 0 |
131+
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.0%] | 2 |
132+
| All ❌✅ (primary) | 0.7% | [0.7%, 0.7%] | 2 |
133+
134+
Primary regressions to cargo and cranelift-codegen look real. However, previous
135+
runs on the same PR saw oscillating results, and since this likely affects CGU
136+
partitioning it doesn't seem unexpected that would be the case. Marking as
137+
triaged.
138+
139+
Rollup of 12 pull requests [#147662](https://github.com/rust-lang/rust/pull/147662) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2f7620a5ccfea7d59d1f500e2a2e59cf1c867a1b&end=e100792918c8bd9e0cb830f96fc9b171e8892fa1&stat=instructions:u)
140+
141+
| (instructions:u) | mean | range | count |
142+
|:----------------------------------:|:-----:|:--------------:|:-----:|
143+
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.5%] | 2 |
144+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 0.5%] | 3 |
145+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 2 |
146+
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 3 |
147+
| All ❌✅ (primary) | 0.1% | [-0.4%, 0.5%] | 4 |
148+
149+
Per PR comment, perf change is from avoiding redundant UB checks:
150+
https://github.com/rust-lang/rust/pull/147620#issuecomment-3404145907.
151+
152+
Regressions don't look spurious but seem unlikely to be practically
153+
investigated to any real effect due to the nature of this change affecting lots
154+
of generated code, and seeming like a good change on a surface level.
155+
156+
Rollup of 12 pull requests [#147692](https://github.com/rust-lang/rust/pull/147692) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=844264adda6f41ca6d0d61c4bcac0f263fc5072f&end=235a4c083eb2a2bfe8779d211c3232f39396de00&stat=instructions:u)
157+
158+
| (instructions:u) | mean | range | count |
159+
|:----------------------------------:|:-----:|:--------------:|:-----:|
160+
| Regressions ❌ <br /> (primary) | 0.3% | [0.1%, 0.9%] | 20 |
161+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.0%, 2.7%] | 48 |
162+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.2%] | 3 |
163+
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.0%] | 5 |
164+
| All ❌✅ (primary) | 0.2% | [-0.4%, 0.9%] | 23 |
165+
166+
Change identification appears to be ongoing on the PR, with no clear cause as yet identified.
167+
168+
prefer alias candidates for sizedness + auto trait goals [#144064](https://github.com/rust-lang/rust/pull/144064) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3f2a5921a451378f219edec28810f5f2f45cf1be&end=57ef8d642d21965304bde849bab4f389b4353e27&stat=instructions:u)
169+
170+
| (instructions:u) | mean | range | count |
171+
|:----------------------------------:|:-----:|:--------------:|:-----:|
172+
| Regressions ❌ <br /> (primary) | 0.4% | [0.1%, 0.8%] | 16 |
173+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 1.8%] | 19 |
174+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.6%, -0.1%] | 6 |
175+
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.7%, -0.3%] | 8 |
176+
| All ❌✅ (primary) | 0.2% | [-0.6%, 0.8%] | 22 |
177+
178+
Fix for a regression. Generally fairly neutral so further investigation doesn't seem warranted.
179+
180+
Use regular Vec in BitSet. [#147644](https://github.com/rust-lang/rust/pull/147644) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f5242367f4acf0130c9b68e6956531b2cb73bd38&end=779e19d8baa3e3625bd4fc5c85cbb2ad47b43155&stat=instructions:u)
181+
182+
| (instructions:u) | mean | range | count |
183+
|:----------------------------------:|:-----:|:--------------:|:-----:|
184+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 0.7%] | 16 |
185+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.0%, 0.8%] | 26 |
186+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.7%, -0.1%] | 26 |
187+
| Improvements ✅ <br /> (secondary) | -0.8% | [-3.0%, -0.1%] | 69 |
188+
| All ❌✅ (primary) | -0.1% | [-0.7%, 0.7%] | 42 |
189+
190+
Marking as triaged as it's overall a slight improvement.
191+
192+
`TaskDeps` improvements [#147508](https://github.com/rust-lang/rust/pull/147508) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=53a741fc4b8cf2d8e7b1b2336ed8edf889db84f4&end=28c4c7d7abced7b35c49f38149b9cb6ea27dd2a6&stat=instructions:u)
193+
194+
| (instructions:u) | mean | range | count |
195+
|:----------------------------------:|:-----:|:--------------:|:-----:|
196+
| Regressions ❌ <br /> (primary) | 0.5% | [0.5%, 0.5%] | 1 |
197+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 0.8%] | 17 |
198+
| Improvements ✅ <br /> (primary) | -0.4% | [-1.0%, -0.1%] | 25 |
199+
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.2%, -0.2%] | 22 |
200+
| All ❌✅ (primary) | -0.4% | [-1.0%, 0.5%] | 26 |
201+
202+
Improvements definitely outweigh regressions.
203+
204+
Pre-compute MIR CFG caches for borrowck and other analyses [#142540](https://github.com/rust-lang/rust/pull/142540) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f46475914de626785090a05ae037578aaa119fc8&end=28fad9598975af7734be05116b3c5fc74b720d87&stat=instructions:u)
205+
206+
| (instructions:u) | mean | range | count |
207+
|:----------------------------------:|:-----:|:--------------:|:-----:|
208+
| Regressions ❌ <br /> (primary) | 1.7% | [1.0%, 2.6%] | 4 |
209+
| Regressions ❌ <br /> (secondary) | 0.9% | [0.1%, 1.6%] | 6 |
210+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.3%, -0.1%] | 15 |
211+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.4%, -0.2%] | 13 |
212+
| All ❌✅ (primary) | 0.2% | [-0.3%, 2.6%] | 19 |
213+
214+
> I think this is fine. We're seeing enough wins for more common Rust code
215+
> (serde, image, syn, etc) that I think it is fine to take the hit for the two
216+
> outliers (tt-muncher and cranelift-codegen for some reason), I do think it
217+
> could be because of cloning taking more instructions than what gets saved,
218+
> but I don't think that is preventable.
219+
220+
https://github.com/rust-lang/rust/pull/142540#issuecomment-3416857137
221+
222+
I think I'm broadly in agreement with this summary of the results.
223+
224+
Limit impl_trait_header query to only trait impls [#144607](https://github.com/rust-lang/rust/pull/144607) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=28fad9598975af7734be05116b3c5fc74b720d87&end=2170b4da847c9d75d400b13ba53bd47f749233bd&stat=instructions:u)
225+
226+
| (instructions:u) | mean | range | count |
227+
|:----------------------------------:|:-----:|:--------------:|:-----:|
228+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 1 |
229+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.2%] | 11 |
230+
| Improvements ✅ <br /> (primary) | -0.6% | [-0.8%, -0.4%] | 7 |
231+
| Improvements ✅ <br /> (secondary) | -1.8% | [-2.6%, -0.1%] | 4 |
232+
| All ❌✅ (primary) | -0.5% | [-0.8%, 0.2%] | 8 |
233+
234+
Some regressions on smaller benchmarks. My guess is that this hurts the case
235+
where there's lots of opt function lookups for that are now two query cache hit
236+
lookups rather than just one? But that seems to generally be less likely in our
237+
benchmarks than showing an improvement, so willing to just accept the
238+
regressions.
239+
240+
Simplify trivial constants in SimplifyConstCondition [#147654](https://github.com/rust-lang/rust/pull/147654) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ab1d2444533d829e2d5cff6634cd3c70de6d7103&end=c8a31b780d5415358566a20b94912620a3f27067&stat=instructions:u)
241+
242+
| (instructions:u) | mean | range | count |
243+
|:----------------------------------:|:-----:|:--------------:|:-----:|
244+
| Regressions ❌ <br /> (primary) | 0.5% | [0.5%, 0.5%] | 1 |
245+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.2%, 1.1%] | 4 |
246+
| Improvements ✅ <br /> (primary) | -0.5% | [-0.9%, -0.2%] | 13 |
247+
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.1%] | 8 |
248+
| All ❌✅ (primary) | -0.4% | [-0.9%, 0.5%] | 14 |
249+
250+
Improvements outweigh regressions.

0 commit comments

Comments
 (0)