Skip to content

Commit 33d1d2f

Browse files
authored
Merge pull request #2267 from rust-lang/panstromek-patch-1
Add perf triage log 2025-10-06
2 parents cac6e4a + e7ee03d commit 33d1d2f

File tree

1 file changed

+208
-0
lines changed

1 file changed

+208
-0
lines changed

triage/2025/2025-10-06.md

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
# 2025-10-06 Triage Log
2+
3+
Largely a positive week. Big win coming from avoiding unnesesary work for debug log in [#147293](https://github.com/rust-lang/rust/pull/147293), and another one for rustdoc from optimized span representation for highlighter [#147189](https://github.com/rust-lang/rust/pull/147189). Lots of noisy results otherwise.
4+
5+
Triage done by **@panstromek**.
6+
Revision range: [8d72d3e1..1a3cdd34](https://perf.rust-lang.org/?start=8d72d3e1e96f58ca10059a6bb6e8aecba4a0e9cd&end=1a3cdd34629306fa67624eaa60d73687e7fcf855&absolute=false&stat=instructions%3Au)
7+
8+
**Summary**:
9+
10+
| (instructions:u) | mean | range | count |
11+
|:----------------------------------:|:-----:|:---------------:|:-----:|
12+
| Regressions ❌ <br /> (primary) | 0.5% | [0.2%, 2.0%] | 10 |
13+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.0%, 0.8%] | 50 |
14+
| Improvements ✅ <br /> (primary) | -1.3% | [-5.3%, -0.2%] | 147 |
15+
| Improvements ✅ <br /> (secondary) | -1.3% | [-12.7%, -0.1%] | 111 |
16+
| All ❌✅ (primary) | -1.2% | [-5.3%, 2.0%] | 157 |
17+
18+
19+
6 Regressions, 3 Improvements, 6 Mixed; 8 of them in rollups
20+
40 artifact comparisons made in total
21+
22+
#### Regressions
23+
24+
Rollup of 7 pull requests [#147140](https://github.com/rust-lang/rust/pull/147140) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=772f380092b30680313b70a622cafc17f03e6bff&end=7af913fc90968844286e5ff6675ab66afa98cdc6&stat=instructions:u)
25+
26+
| (instructions:u) | mean | range | count |
27+
|:----------------------------------:|:----:|:------------:|:-----:|
28+
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.3%] | 6 |
29+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 0.4%] | 2 |
30+
| Improvements ✅ <br /> (primary) | - | - | 0 |
31+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
32+
| All ❌✅ (primary) | 0.2% | [0.1%, 0.3%] | 6 |
33+
34+
Based on perf runs on respective PRs, this seems to be https://github.com/rust-lang/rust/pull/133477. https://github.com/rust-lang/rust/pull/147092 was tested but regressions on that are noise and don't match this PR. Other PR's don't touch benchmarked code.
35+
36+
This could also be noise, since the results somewhat fit a bimodal pattern and changes are tiny, but detailed results show increases in number of executed visibility related queries.
37+
38+
Rollup of 5 pull requests [#147186](https://github.com/rust-lang/rust/pull/147186) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a2db9280539229a3b8a084a09886670a57bc7e9c&end=42d009c0a9be0f7020a03f85dd47faa00d6d7bdf&stat=instructions:u)
39+
40+
| (instructions:u) | mean | range | count |
41+
|:----------------------------------:|:----:|:------------:|:-----:|
42+
| Regressions ❌ <br /> (primary) | 3.0% | [3.0%, 3.0%] | 1 |
43+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
44+
| Improvements ✅ <br /> (primary) | - | - | 0 |
45+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
46+
| All ❌✅ (primary) | 3.0% | [3.0%, 3.0%] | 1 |
47+
48+
`clap_derive` bimodal noise
49+
50+
Turn ProjectionElem::Subtype into CastKind::Subtype [#147055](https://github.com/rust-lang/rust/pull/147055) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3369e82c6bc03c5cdb66f730dba6f738b74c8e1d&end=42b384ec0dfcd528d99a4db0a337d9188a9eecaa&stat=instructions:u)
51+
52+
| (instructions:u) | mean | range | count |
53+
|:----------------------------------:|:----:|:------------:|:-----:|
54+
| Regressions ❌ <br /> (primary) | 3.0% | [3.0%, 3.0%] | 1 |
55+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
56+
| Improvements ✅ <br /> (primary) | - | - | 0 |
57+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
58+
| All ❌✅ (primary) | 3.0% | [3.0%, 3.0%] | 1 |
59+
60+
`clap_derive` bimodal noise
61+
62+
Rollup of 9 pull requests [#147261](https://github.com/rust-lang/rust/pull/147261) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4b9c62b4da3e17cee99d3d2052f1c576b188e2a8&end=94ecb52bbeeccc990545d4ebc9e9c35dcaf285e3&stat=instructions:u)
63+
64+
| (instructions:u) | mean | range | count |
65+
|:----------------------------------:|:----:|:------------:|:-----:|
66+
| Regressions ❌ <br /> (primary) | 2.8% | [2.8%, 2.8%] | 1 |
67+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
68+
| Improvements ✅ <br /> (primary) | - | - | 0 |
69+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
70+
| All ❌✅ (primary) | 2.8% | [2.8%, 2.8%] | 1 |
71+
72+
`clap_derive` bimodal noise and something that looks like optimization shuffling in `coercions` (most of the changes are in the backend). This is a small change in secondary benchmark, so I don't think this is worth more investigation.
73+
74+
Extending `#[rustc_force_inline]` to be applicable to inherent methods [#147231](https://github.com/rust-lang/rust/pull/147231) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5c7ae0c7ed184c603e5224604a9f33ca0e8e0b36&end=8d603ef2879fd263f8e9aea340b4c035ed7973db&stat=instructions:u)
75+
76+
| (instructions:u) | mean | range | count |
77+
|:----------------------------------:|:----:|:------------:|:-----:|
78+
| Regressions ❌ <br /> (primary) | 3.1% | [3.1%, 3.1%] | 1 |
79+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
80+
| Improvements ✅ <br /> (primary) | - | - | 0 |
81+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
82+
| All ❌✅ (primary) | 3.1% | [3.1%, 3.1%] | 1 |
83+
84+
`clap_derive` bimodal noise
85+
86+
don't make empty ident when printing `'` ident from `extern "'"` [#147377](https://github.com/rust-lang/rust/pull/147377) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=828c2a9afccf3b3ff8133368cfbc8bfe526aaa4d&end=1a3cdd34629306fa67624eaa60d73687e7fcf855&stat=instructions:u)
87+
88+
| (instructions:u) | mean | range | count |
89+
|:----------------------------------:|:----:|:------------:|:-----:|
90+
| Regressions ❌ <br /> (primary) | - | - | 0 |
91+
| Regressions ❌ <br /> (secondary) | 0.9% | [0.8%, 1.0%] | 6 |
92+
| Improvements ✅ <br /> (primary) | - | - | 0 |
93+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
94+
| All ❌✅ (primary) | - | - | 0 |
95+
96+
Perf results are noise. Looks like `wg-grammar` became bimodal recently.
97+
98+
#### Improvements
99+
100+
Rollup of 11 pull requests [#147220](https://github.com/rust-lang/rust/pull/147220) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1e1a39441bd11aba541a48ba714d939490fc7b85&end=d4ae855111df8c7ee255bea4c112e74b7d72cf45&stat=instructions:u)
101+
102+
| (instructions:u) | mean | range | count |
103+
|:----------------------------------:|:-----:|:---------------:|:-----:|
104+
| Regressions ❌ <br /> (primary) | - | - | 0 |
105+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
106+
| Improvements ✅ <br /> (primary) | -1.3% | [-5.4%, -0.2%] | 19 |
107+
| Improvements ✅ <br /> (secondary) | -3.8% | [-12.6%, -0.2%] | 13 |
108+
| All ❌✅ (primary) | -1.3% | [-5.4%, -0.2%] | 19 |
109+
110+
111+
Test: Ambigious bindings in same namespace with the same res [#147196](https://github.com/rust-lang/rust/pull/147196) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=94ecb52bbeeccc990545d4ebc9e9c35dcaf285e3&end=5c7ae0c7ed184c603e5224604a9f33ca0e8e0b36&stat=instructions:u)
112+
113+
| (instructions:u) | mean | range | count |
114+
|:----------------------------------:|:-----:|:--------------:|:-----:|
115+
| Regressions ❌ <br /> (primary) | - | - | 0 |
116+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
117+
| Improvements ✅ <br /> (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
118+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
119+
| All ❌✅ (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
120+
121+
122+
Rollup of 6 pull requests [#147282](https://github.com/rust-lang/rust/pull/147282) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8d603ef2879fd263f8e9aea340b4c035ed7973db&end=3b8665c5ab3aeced9b01672404c3764583e722ca&stat=instructions:u)
123+
124+
| (instructions:u) | mean | range | count |
125+
|:----------------------------------:|:-----:|:--------------:|:-----:|
126+
| Regressions ❌ <br /> (primary) | - | - | 0 |
127+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
128+
| Improvements ✅ <br /> (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
129+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
130+
| All ❌✅ (primary) | -2.9% | [-2.9%, -2.9%] | 1 |
131+
132+
133+
#### Mixed
134+
135+
Rollup of 6 pull requests [#147197](https://github.com/rust-lang/rust/pull/147197) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=42d009c0a9be0f7020a03f85dd47faa00d6d7bdf&end=fa3155a644dd62e865825087b403646be01d4cef&stat=instructions:u)
136+
137+
| (instructions:u) | mean | range | count |
138+
|:----------------------------------:|:-----:|:--------------:|:-----:|
139+
| Regressions ❌ <br /> (primary) | - | - | 0 |
140+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
141+
| Improvements ✅ <br /> (primary) | -1.5% | [-2.9%, -0.4%] | 3 |
142+
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.2%, -0.3%] | 5 |
143+
| All ❌✅ (primary) | -1.5% | [-2.9%, -0.4%] | 3 |
144+
145+
Improvements outweigh regressions. `coercions` regression also looks like noise.
146+
147+
Split Bound index into Canonical and Bound [#147138](https://github.com/rust-lang/rust/pull/147138) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=42b384ec0dfcd528d99a4db0a337d9188a9eecaa&end=4b9c62b4da3e17cee99d3d2052f1c576b188e2a8&stat=instructions:u)
148+
149+
| (instructions:u) | mean | range | count |
150+
|:----------------------------------:|:-----:|:--------------:|:-----:|
151+
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.4%] | 7 |
152+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.2%] | 11 |
153+
| Improvements ✅ <br /> (primary) | -1.0% | [-2.8%, -0.1%] | 4 |
154+
| Improvements ✅ <br /> (secondary) | -0.3% | [-1.1%, -0.0%] | 11 |
155+
| All ❌✅ (primary) | -0.3% | [-2.8%, 0.4%] | 11 |
156+
157+
Improvements outweigh regressions, but some of those improvements are noise (clap-derive and syn). Main regressions match pre-merge results, so I assume this was deemed acceptable as a part of work on new solver, but I don't see any explicit justification.
158+
159+
Introduce debuginfo to statements in MIR [#142771](https://github.com/rust-lang/rust/pull/142771) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=dd091003ace19d9556c647d87f7a9cd1e8dcc17e&end=8b6b15b877fbceb1ee5d9a5a4746e7515901574a&stat=instructions:u)
160+
161+
| (instructions:u) | mean | range | count |
162+
|:----------------------------------:|:-----:|:--------------:|:-----:|
163+
| Regressions ❌ <br /> (primary) | 0.5% | [0.1%, 2.0%] | 9 |
164+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 0.9%] | 43 |
165+
| Improvements ✅ <br /> (primary) | -0.3% | [-1.2%, -0.1%] | 101 |
166+
| Improvements ✅ <br /> (secondary) | -0.3% | [-1.0%, -0.1%] | 102 |
167+
| All ❌✅ (primary) | -0.3% | [-1.2%, 2.0%] | 110 |
168+
169+
Improvements outweigh regressions. Some secondary regressions are just noise (`wg-grammar`), the biggest meaningful change seems to be `diesel` opt, as mentioned in https://github.com/rust-lang/rust/pull/142771#issuecomment-3367798805, due to more inlining, `syn` seems to be a similar case.
170+
171+
Rollup of 10 pull requests [#147340](https://github.com/rust-lang/rust/pull/147340) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=99ca0ae87ba5571acee116ea83d1f9e88a7bf8d8&end=2cb4e7dce84fdebc0279159f1082f92b99299d87&stat=instructions:u)
172+
173+
| (instructions:u) | mean | range | count |
174+
|:----------------------------------:|:-----:|:--------------:|:-----:|
175+
| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.1%] | 2 |
176+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 12 |
177+
| Improvements ✅ <br /> (primary) | - | - | 0 |
178+
| Improvements ✅ <br /> (secondary) | -0.9% | [-1.0%, -0.8%] | 6 |
179+
| All ❌✅ (primary) | 0.1% | [0.1%, 0.1%] | 2 |
180+
181+
Non-doc changes are mostly noise. Doc changes are not super clear to me. Even hello-world changed a tiny bit, so maybe this is just caused by the number of std changes? Some of those changes also mirror https://github.com/rust-lang/rust/pull/142771 dip, so it could also be noise.
182+
183+
Either way, all doc changes are small and mostly secondary, I think we don't need to look more deeply into it.
184+
185+
Avoid getting `dep_dep_node` unnecessarily. [#147293](https://github.com/rust-lang/rust/pull/147293) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2cb4e7dce84fdebc0279159f1082f92b99299d87&end=227ac7c3cd486872d5c2352b3df02b571500e53a&stat=instructions:u)
186+
187+
| (instructions:u) | mean | range | count |
188+
|:----------------------------------:|:-----:|:--------------:|:-----:|
189+
| Regressions ❌ <br /> (primary) | - | - | 0 |
190+
| Regressions ❌ <br /> (secondary) | 0.9% | [0.8%, 1.0%] | 6 |
191+
| Improvements ✅ <br /> (primary) | -1.3% | [-3.5%, -0.2%] | 115 |
192+
| Improvements ✅ <br /> (secondary) | -1.1% | [-2.6%, -0.2%] | 61 |
193+
| All ❌✅ (primary) | -1.3% | [-3.5%, -0.2%] | 115 |
194+
195+
`wg-grammar` regressions are noise, this is clearly a win otherwise.
196+
197+
Rollup of 7 pull requests [#147363](https://github.com/rust-lang/rust/pull/147363) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=227ac7c3cd486872d5c2352b3df02b571500e53a&end=e2c96cc06bdbdbc6f59c7551194d6a742260d6ff&stat=instructions:u)
198+
199+
| (instructions:u) | mean | range | count |
200+
|:----------------------------------:|:-----:|:--------------:|:-----:|
201+
| Regressions ❌ <br /> (primary) | - | - | 0 |
202+
| Regressions ❌ <br /> (secondary) | 0.1% | [0.1%, 0.1%] | 1 |
203+
| Improvements ✅ <br /> (primary) | -0.5% | [-1.6%, -0.2%] | 6 |
204+
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.6%, -0.0%] | 4 |
205+
| All ❌✅ (primary) | -0.5% | [-1.6%, -0.2%] | 6 |
206+
207+
208+
Improvements outweigh a small regression in secondary stress test.

0 commit comments

Comments
 (0)