Skip to content

Commit 80556a3

Browse files
authored
Merge pull request #2061 from rylev/perf-2025-03-18
Add perf for 2025-03-18
2 parents f0df909 + 8148c03 commit 80556a3

File tree

1 file changed

+177
-0
lines changed

1 file changed

+177
-0
lines changed

Diff for: triage/2025-03-18.md

+177
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# 2025-03-18 Triage Log
2+
3+
A relatively busy week with a large amount of regressions in rollups which made investigations more tricky. Luckily overall the week was an improvement due to some medium sized improvements through improving target feature computation and a type systems internals fix.
4+
5+
Triage done by **@rylev**.
6+
Revision range: [9fb94b32..493c38ba](https://perf.rust-lang.org/?start=9fb94b32df38073bf63d009df77ed10cb1c989d0&end=493c38ba371929579fe136df26eccd9516347c7a&absolute=false&stat=instructions%3Au)
7+
8+
**Summary**:
9+
10+
| (instructions:u) | mean | range | count |
11+
|:----------------------------------:|:-----:|:---------------:|:-----:|
12+
| Regressions ❌ <br /> (primary) | 1.7% | [0.2%, 3.0%] | 18 |
13+
| Regressions ❌ <br /> (secondary) | 0.8% | [0.2%, 2.7%] | 37 |
14+
| Improvements ✅ <br /> (primary) | -1.0% | [-10.3%, -0.2%] | 157 |
15+
| Improvements ✅ <br /> (secondary) | -1.7% | [-8.8%, -0.2%] | 158 |
16+
| All ❌✅ (primary) | -0.8% | [-10.3%, 3.0%] | 175 |
17+
18+
19+
5 Regressions, 5 Improvements, 3 Mixed; 5 of them in rollups
20+
44 artifact comparisons made in total
21+
22+
#### Regressions
23+
24+
Reduce formatting `width` and `precision` to 16 bits [#136932](https://github.com/rust-lang/rust/pull/136932) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=90384941aae4ea38de00e4702b50757e9b882a19&end=374ce1f90951b4dd1c8789c6a5905abe8ea99ef8&stat=instructions:u)
25+
26+
| (instructions:u) | mean | range | count |
27+
|:----------------------------------:|:----:|:------------:|:-----:|
28+
| Regressions ❌ <br /> (primary) | 0.4% | [0.4%, 0.5%] | 3 |
29+
| Regressions ❌ <br /> (secondary) | 1.2% | [1.2%, 1.2%] | 1 |
30+
| Improvements ✅ <br /> (primary) | - | - | 0 |
31+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
32+
| All ❌✅ (primary) | 0.4% | [0.4%, 0.5%] | 3 |
33+
- Not sure the perf regression is necessarily worth investigating - this only impacts exa which I imagine does do quite a bit of formatting. If this were really an issue I'd expect it to show up in more crates given that it impacts the std lib directly.
34+
35+
36+
Remove `NtItem` and `NtStmt` [#138083](https://github.com/rust-lang/rust/pull/138083) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0998d4095b0f11061f78a3f9c77a87838a4c1cb7&end=aaa2d47daebb02454fc7c08c04c3c603d5efeedb&stat=instructions:u)
37+
38+
| (instructions:u) | mean | range | count |
39+
|:----------------------------------:|:----:|:------------:|:-----:|
40+
| Regressions ❌ <br /> (primary) | 2.2% | [0.2%, 3.1%] | 14 |
41+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 1 |
42+
| Improvements ✅ <br /> (primary) | - | - | 0 |
43+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
44+
| All ❌✅ (primary) | 2.2% | [0.2%, 3.1%] | 14 |
45+
- Author and reviewer [agree](https://github.com/rust-lang/rust/pull/138083#issuecomment-2706183798) to tackle perf once the full refactor is done.
46+
47+
48+
Add a .bss-like scheme for encoded const allocs [#137152](https://github.com/rust-lang/rust/pull/137152) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=93257e2d20809d82d1bc0fcc1942480d1a66d7cd&end=52daa7d835e7ff51cb387340082bf9a59b949738&stat=instructions:u)
49+
50+
| (instructions:u) | mean | range | count |
51+
|:----------------------------------:|:----:|:------------:|:-----:|
52+
| Regressions ❌ <br /> (primary) | - | - | 0 |
53+
| Regressions ❌ <br /> (secondary) | 3.5% | [3.2%, 4.1%] | 3 |
54+
| Improvements ✅ <br /> (primary) | - | - | 0 |
55+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
56+
| All ❌✅ (primary) | - | - | 0 |
57+
- Author and reviewer [agree](https://github.com/rust-lang/rust/pull/137152#issuecomment-2666907180) that the perf tradeoff is worth it.
58+
59+
60+
Rollup of 16 pull requests [#138548](https://github.com/rust-lang/rust/pull/138548) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9f274ba3997030a2b7656755a6810fd26cb709f3&end=66678e68227913a42438afc7320a2849dffd4d51&stat=instructions:u)
61+
62+
| (instructions:u) | mean | range | count |
63+
|:----------------------------------:|:----:|:------------:|:-----:|
64+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.0%] | 8 |
65+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 0.9%] | 14 |
66+
| Improvements ✅ <br /> (primary) | - | - | 0 |
67+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
68+
| All ❌✅ (primary) | 0.4% | [0.2%, 1.0%] | 8 |
69+
- It's not clear to me which PR could be the culprit. Instead of wasting a bunch of perf time trying to find out, I think it's fine if we cut our losses.
70+
71+
72+
Rollup of 7 pull requests [#138611](https://github.com/rust-lang/rust/pull/138611) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8279176ccdfd4eebd40a671f75b6d3024ae56b42&end=43a2e9d2c72db101f5fedac8b3acb78981b06bf2&stat=instructions:u)
73+
74+
| (instructions:u) | mean | range | count |
75+
|:----------------------------------:|:----:|:------------:|:-----:|
76+
| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 3 |
77+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
78+
| Improvements ✅ <br /> (primary) | - | - | 0 |
79+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
80+
| All ❌✅ (primary) | 0.3% | [0.3%, 0.3%] | 3 |
81+
- The regression is small enough that I don't think this is really worth looking into.
82+
83+
84+
#### Improvements
85+
86+
Speed up target feature computation [#137586](https://github.com/rust-lang/rust/pull/137586) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=705421b52239d7393b4738764b192179d5c139c2&end=ebf0cf75d368c035f4c7e7246d203bd469ee4a51&stat=instructions:u)
87+
88+
| (instructions:u) | mean | range | count |
89+
|:----------------------------------:|:-----:|:--------------:|:-----:|
90+
| Regressions ❌ <br /> (primary) | - | - | 0 |
91+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
92+
| Improvements ✅ <br /> (primary) | -1.3% | [-9.9%, -0.2%] | 55 |
93+
| Improvements ✅ <br /> (secondary) | -1.8% | [-8.4%, -0.1%] | 122 |
94+
| All ❌✅ (primary) | -1.3% | [-9.9%, -0.2%] | 55 |
95+
96+
97+
Add `#[define_opaques]` attribute and require it for all type-alias-impl-trait sites that register a hidden type [#128440](https://github.com/rust-lang/rust/pull/128440) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f2d69d5a7c04617d122facd0a7a5bdde0af928ae&end=6650252439d4e03368b305c42a10006e36f1545e&stat=instructions:u)
98+
99+
| (instructions:u) | mean | range | count |
100+
|:----------------------------------:|:-----:|:--------------:|:-----:|
101+
| Regressions ❌ <br /> (primary) | - | - | 0 |
102+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
103+
| Improvements ✅ <br /> (primary) | -0.5% | [-1.6%, -0.2%] | 58 |
104+
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.4%, -0.4%] | 3 |
105+
| All ❌✅ (primary) | -0.5% | [-1.6%, -0.2%] | 58 |
106+
107+
108+
Do not register `Self: AutoTrait` when confirming auto trait (in old solver) [#138249](https://github.com/rust-lang/rust/pull/138249) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8536f201ffdb2c24925d7f9e87996d7dca93428b&end=961351c76c812e3aeb65bfb542742500a6436aed&stat=instructions:u)
109+
110+
| (instructions:u) | mean | range | count |
111+
|:----------------------------------:|:-----:|:--------------:|:-----:|
112+
| Regressions ❌ <br /> (primary) | - | - | 0 |
113+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
114+
| Improvements ✅ <br /> (primary) | -1.8% | [-5.2%, -0.2%] | 21 |
115+
| Improvements ✅ <br /> (secondary) | -1.5% | [-4.3%, -0.3%] | 4 |
116+
| All ❌✅ (primary) | -1.8% | [-5.2%, -0.2%] | 21 |
117+
118+
119+
Rollup of 9 pull requests [#138506](https://github.com/rust-lang/rust/pull/138506) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cb50d4d8566b1ee97e9a5ef95a37a40936a62c30&end=ecade534c66478c51c5d3c1d3682dc4beb0ac972&stat=instructions:u)
120+
121+
| (instructions:u) | mean | range | count |
122+
|:----------------------------------:|:-----:|:--------------:|:-----:|
123+
| Regressions ❌ <br /> (primary) | - | - | 0 |
124+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
125+
| Improvements ✅ <br /> (primary) | -2.1% | [-2.1%, -2.1%] | 1 |
126+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
127+
| All ❌✅ (primary) | -2.1% | [-2.1%, -2.1%] | 1 |
128+
129+
130+
Rollup of 7 pull requests [#138630](https://github.com/rust-lang/rust/pull/138630) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=493c38ba371929579fe136df26eccd9516347c7a&end=259fdb521200c9abba547302fc2c826479ef26b2&stat=instructions:u)
131+
132+
| (instructions:u) | mean | range | count |
133+
|:----------------------------------:|:-----:|:--------------:|:-----:|
134+
| Regressions ❌ <br /> (primary) | - | - | 0 |
135+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
136+
| Improvements ✅ <br /> (primary) | -0.1% | [-0.2%, -0.1%] | 5 |
137+
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.7%, -0.2%] | 4 |
138+
| All ❌✅ (primary) | -0.1% | [-0.2%, -0.1%] | 5 |
139+
140+
141+
#### Mixed
142+
143+
Allow bounds checks when enumerating `IndexSlice` to be elided [#137795](https://github.com/rust-lang/rust/pull/137795) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c6251023208f7e9789602376909af8aaf09483b7&end=d2b52c5c48ea024fc277feddcc92a60cc92be13c&stat=instructions:u)
144+
145+
| (instructions:u) | mean | range | count |
146+
|:----------------------------------:|:-----:|:--------------:|:-----:|
147+
| Regressions ❌ <br /> (primary) | - | - | 0 |
148+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.4%, 0.4%] | 6 |
149+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.2%] | 8 |
150+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
151+
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 8 |
152+
- As the [reviewer stated](https://github.com/rust-lang/rust/pull/137795#pullrequestreview-2667416001) this is more an improvement than a regression.
153+
154+
155+
Rollup of 7 pull requests [#138414](https://github.com/rust-lang/rust/pull/138414) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=aaa2d47daebb02454fc7c08c04c3c603d5efeedb&end=249cb84316401daf040832cdbb8a45e0f5ab6af8&stat=instructions:u)
156+
157+
| (instructions:u) | mean | range | count |
158+
|:----------------------------------:|:-----:|:--------------:|:-----:|
159+
| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.1%] | 19 |
160+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.2%, 1.1%] | 32 |
161+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
162+
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.7%, -0.2%] | 24 |
163+
| All ❌✅ (primary) | 0.4% | [-0.2%, 1.1%] | 21 |
164+
- [#137701](https://github.com/rust-lang/rust/pull/137701) is responsible for the regression. The author and reviewer have been asked for next steps.
165+
166+
167+
Allow more top-down inlining for single-BB callees [#138157](https://github.com/rust-lang/rust/pull/138157) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=addae0705c7cf5b2f2ed7faeec026c894f497b3d&end=523c507d260c6f4391a5041f084528f5fa670312&stat=instructions:u)
168+
169+
| (instructions:u) | mean | range | count |
170+
|:----------------------------------:|:-----:|:--------------:|:-----:|
171+
| Regressions ❌ <br /> (primary) | 1.0% | [0.5%, 1.4%] | 2 |
172+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 2 |
173+
| Improvements ✅ <br /> (primary) | -0.7% | [-1.1%, -0.4%] | 5 |
174+
| Improvements ✅ <br /> (secondary) | -0.6% | [-0.7%, -0.6%] | 3 |
175+
| All ❌✅ (primary) | -0.2% | [-1.1%, 1.4%] | 7 |
176+
- [Author notes](https://github.com/rust-lang/rust/pull/138157#issuecomment-2712124218) that the this does regress icount but walltime should be unaffected or even improved.
177+

0 commit comments

Comments
 (0)