Skip to content

Commit e38e76d

Browse files
Add triage for this week
1 parent c02b7d8 commit e38e76d

File tree

1 file changed

+171
-0
lines changed

1 file changed

+171
-0
lines changed

triage/2025/2025-08-18.md

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
# 2025-08-18 Triage Log
2+
3+
Lots of noise/bimodality this week. Overall though no major performance impacting changes landed.
4+
5+
Triage done by **@simulacrum**.
6+
Revision range: [6355cd39..239e8b1b](https://perf.rust-lang.org/?start=6355cd39c81e9699b1925c58d2ed3165bcab1715&end=239e8b1b47b34120287ec36b33228c1e177f0c38&absolute=false&stat=instructions%3Au)
7+
8+
**Summary**:
9+
10+
| (instructions:u) | mean | range | count |
11+
|:----------------------------------:|:-----:|:--------------:|:-----:|
12+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 1.2%] | 94 |
13+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 1.1%] | 48 |
14+
| Improvements ✅ <br /> (primary) | -1.2% | [-3.2%, -0.2%] | 16 |
15+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 5 |
16+
| All ❌✅ (primary) | 0.1% | [-3.2%, 1.2%] | 110 |
17+
18+
1 Regressions, 3 Improvements, 7 Mixed; 4 of them in rollups
19+
27 artifact comparisons made in total
20+
21+
#### Regressions
22+
23+
Make no_mangle on foreign items explicit instead of implicit [#144678](https://github.com/rust-lang/rust/pull/144678) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d9dba3a55476ae2da5d4e5bce8a81b341c675750&end=8e62bfd311791bfd9dca886abdfbab07ec54d8b4&stat=instructions:u)
24+
25+
| (instructions:u) | mean | range | count |
26+
|:----------------------------------:|:----:|:------------:|:-----:|
27+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.6%] | 8 |
28+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.5%] | 8 |
29+
| Improvements ✅ <br /> (primary) | - | - | 0 |
30+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
31+
| All ❌✅ (primary) | 0.3% | [0.2%, 0.6%] | 8 |
32+
33+
One extra query introduced, possibly to be removed at a future date with
34+
additional validation on attributes in an earlier stage of the compiler.
35+
36+
#### Improvements
37+
38+
Rollup of 13 pull requests [#145388](https://github.com/rust-lang/rust/pull/145388) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2c1ac85679678dfe5cce7ea8037735b0349ceaf3&end=30017c36d6b5e3382ee7cf018d330a6a4a937d39&stat=instructions:u)
39+
40+
| (instructions:u) | mean | range | count |
41+
|:----------------------------------:|:-----:|:--------------:|:-----:|
42+
| Regressions ❌ <br /> (primary) | 0.7% | [0.7%, 0.7%] | 1 |
43+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.4%] | 3 |
44+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.4%, -0.2%] | 68 |
45+
| Improvements ✅ <br /> (secondary) | -0.4% | [-1.8%, -0.2%] | 24 |
46+
| All ❌✅ (primary) | -0.2% | [-0.4%, 0.7%] | 69 |
47+
48+
49+
Rework target checking for built-in attributes [#145085](https://github.com/rust-lang/rust/pull/145085) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=be00ea1968d8d5afb5d93d2dedeb97a8bba300cb&end=898aff704d6f0d00343f21d31b8b9bfac8e43007&stat=instructions:u)
50+
51+
| (instructions:u) | mean | range | count |
52+
|:----------------------------------:|:-----:|:--------------:|:-----:|
53+
| Regressions ❌ <br /> (primary) | - | - | 0 |
54+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
55+
| Improvements ✅ <br /> (primary) | - | - | 0 |
56+
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.9%, -0.1%] | 13 |
57+
| All ❌✅ (primary) | - | - | 0 |
58+
59+
60+
Rollup of 10 pull requests [#145551](https://github.com/rust-lang/rust/pull/145551) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=425a9c0a0e365c0b8c6cfd00c2ded83a73bed9a0&end=239e8b1b47b34120287ec36b33228c1e177f0c38&stat=instructions:u)
61+
62+
| (instructions:u) | mean | range | count |
63+
|:----------------------------------:|:-----:|:--------------:|:-----:|
64+
| Regressions ❌ <br /> (primary) | - | - | 0 |
65+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
66+
| Improvements ✅ <br /> (primary) | -1.2% | [-1.5%, -0.8%] | 2 |
67+
| Improvements ✅ <br /> (secondary) | -0.6% | [-1.5%, -0.1%] | 3 |
68+
| All ❌✅ (primary) | -1.2% | [-1.5%, -0.8%] | 2 |
69+
70+
71+
#### Mixed
72+
73+
Fix parallel rustc not being reproducible due to unstable sorts of items [#144722](https://github.com/rust-lang/rust/pull/144722) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1c9952f4dd6e0947ee91f07130c03813a088a894&end=350d0ef0ec0493e6d21cfb265cb8211a0e74d766&stat=instructions:u)
74+
75+
| (instructions:u) | mean | range | count |
76+
|:----------------------------------:|:-----:|:--------------:|:-----:|
77+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.5%] | 5 |
78+
| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.3%] | 7 |
79+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.6%, -0.1%] | 12 |
80+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
81+
| All ❌✅ (primary) | -0.1% | [-0.6%, 0.5%] | 17 |
82+
83+
[#145358](https://github.com/rust-lang/rust/pull/145358) claws back some of the performance impact from this PR.
84+
85+
Update to LLVM 21.1.0 rc3 [#145298](https://github.com/rust-lang/rust/pull/145298) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=350d0ef0ec0493e6d21cfb265cb8211a0e74d766&end=f5b8a11fecf23cb669f6d1feae81aafc2930aeb9&stat=instructions:u)
86+
87+
| (instructions:u) | mean | range | count |
88+
|:----------------------------------:|:-----:|:--------------:|:-----:|
89+
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.2%] | 8 |
90+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
91+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
92+
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.8%, -0.2%] | 3 |
93+
| All ❌✅ (primary) | 0.1% | [-0.2%, 0.2%] | 9 |
94+
95+
I'm not convinced the changes are real here, but they're certainly not
96+
significant enough to investigate deeply for an LLVM upgrade.
97+
98+
Rollup of 9 pull requests [#145366](https://github.com/rust-lang/rust/pull/145366) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f5b8a11fecf23cb669f6d1feae81aafc2930aeb9&end=3672a55b7cfd0a12e7097197b6242872473ffaa7&stat=instructions:u)
99+
100+
| (instructions:u) | mean | range | count |
101+
|:----------------------------------:|:-----:|:--------------:|:-----:|
102+
| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.7%] | 43 |
103+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.6%] | 20 |
104+
| Improvements ✅ <br /> (primary) | - | - | 0 |
105+
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.5%, -0.5%] | 1 |
106+
| All ❌✅ (primary) | 0.2% | [0.1%, 0.7%] | 43 |
107+
108+
Caused by
109+
[#145153](https://github.com/rust-lang/rust/pull/145153#issuecomment-3189567116).
110+
In general regressions across the board aren't great, but this is headed
111+
towards introduction of new functionality, so perhaps required. Some profiling
112+
of the PR may yield interesting results given how wide spread the regression is
113+
for some micro-opt work.
114+
115+
resolve: Split extern prelude into two scopes [#144793](https://github.com/rust-lang/rust/pull/144793) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3672a55b7cfd0a12e7097197b6242872473ffaa7&end=8e7795415acaa9471b5eeb2301915d6996d289ec&stat=instructions:u)
116+
117+
| (instructions:u) | mean | range | count |
118+
|:----------------------------------:|:-----:|:--------------:|:-----:|
119+
| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 2 |
120+
| Regressions ❌ <br /> (secondary) | 0.7% | [0.3%, 1.9%] | 4 |
121+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.7%, -0.2%] | 5 |
122+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
123+
| All ❌✅ (primary) | -0.2% | [-0.7%, 0.2%] | 7 |
124+
125+
Looks like it's only a real regression for the secondary externs scenario, and
126+
even there only significant in incr-unchanged. I'm not worried enough to merit
127+
further poking, especially as it seems plausible this is a natural (if slight)
128+
regression from tracking at finer granularity.
129+
130+
Rollup of 11 pull requests [#145407](https://github.com/rust-lang/rust/pull/145407) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=898aff704d6f0d00343f21d31b8b9bfac8e43007&end=3507a749b365aae4eefa96ab700a9315d3280ee7&stat=instructions:u)
131+
132+
| (instructions:u) | mean | range | count |
133+
|:----------------------------------:|:-----:|:--------------:|:-----:|
134+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 39 |
135+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.2%, 0.9%] | 18 |
136+
| Improvements ✅ <br /> (primary) | -1.4% | [-3.7%, -0.2%] | 3 |
137+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
138+
| All ❌✅ (primary) | 0.1% | [-3.7%, 0.4%] | 42 |
139+
140+
Regression caused by
141+
[#145233](https://github.com/rust-lang/rust/pull/145233#issuecomment-3191062342),
142+
based on granular perf run, but there's some suspicion that it might still be
143+
just noise. Further investigation seems unwarranted at this time.
144+
145+
Patterns: represent constants as valtrees [#144591](https://github.com/rust-lang/rust/pull/144591) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3507a749b365aae4eefa96ab700a9315d3280ee7&end=8800ec16657b24ad8a2f443c133bf0b56ae76033&stat=instructions:u)
146+
147+
| (instructions:u) | mean | range | count |
148+
|:----------------------------------:|:-----:|:--------------:|:-----:|
149+
| Regressions ❌ <br /> (primary) | 5.3% | [5.3%, 5.3%] | 1 |
150+
| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.0%] | 9 |
151+
| Improvements ✅ <br /> (primary) | -2.7% | [-3.2%, -2.2%] | 6 |
152+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
153+
| All ❌✅ (primary) | -1.5% | [-3.2%, 5.3%] | 7 |
154+
155+
The match-stress regression seems real, but probably not important to look into
156+
given the context of this PR. Other regressions look like noise.
157+
158+
Rollup of 21 pull requests [#145423](https://github.com/rust-lang/rust/pull/145423) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8800ec16657b24ad8a2f443c133bf0b56ae76033&end=ba412a6e70ac84641be7764d088acabd0eb3fa39&stat=instructions:u)
159+
160+
| (instructions:u) | mean | range | count |
161+
|:----------------------------------:|:-----:|:--------------:|:-----:|
162+
| Regressions ❌ <br /> (primary) | 1.2% | [0.2%, 3.2%] | 4 |
163+
| Regressions ❌ <br /> (secondary) | 0.4% | [0.0%, 0.5%] | 3 |
164+
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 1 |
165+
| Improvements ✅ <br /> (secondary) | -1.5% | [-2.0%, -0.9%] | 2 |
166+
| All ❌✅ (primary) | 0.9% | [-0.2%, 3.2%] | 5 |
167+
168+
Most regressions are noise but ripgrep regression looks real, seems to be
169+
caused by [#122661](https://github.com/rust-lang/rust/pull/122661). See
170+
[writeup](https://github.com/rust-lang/rust/pull/122661#issuecomment-3199007696)
171+
for some brief investigation.

0 commit comments

Comments
 (0)