Skip to content

Commit de4dc96

Browse files
authored
Merge pull request rust-lang#1719 from pnkfelix/triage-2023-09-13
Triage 2023 09 13
2 parents c5966b7 + e042df9 commit de4dc96

File tree

1 file changed

+164
-0
lines changed

1 file changed

+164
-0
lines changed

triage/2023-09-13.md

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
# 2023-09-13 Triage Log
2+
3+
An interesting week. We saw a massive improvement to instruction-counts across
4+
over a hundred benchmarks, thanks to #110050 an improved encoding scheme for the
5+
dependency graphs that underlie incremental-compilation. However, these
6+
instruction-count improvements did not translate to direct cycle time
7+
improvements. We also saw an improvement to our artifact sizes due to #115306.
8+
Beyond that, we had a scattering of small regressions to instruction-counts that
9+
were justified because they were associated with bug fixes.
10+
11+
Triage done by **@pnkfelix**.
12+
Revision range: [15e52b05..7e0261e7](https://perf.rust-lang.org/?start=15e52b05ca8f63e0da27c808680388717e5b997e&end=7e0261e7ea2085bdc0bc3d0fd6776bf343473858&absolute=false&stat=instructions%3Au)
13+
14+
**Summary**:
15+
16+
| (instructions:u) | mean | range | count |
17+
|:----------------------------------:|:-----:|:--------------:|:-----:|
18+
| Regressions ❌ <br /> (primary) | 2.8% | [0.7%, 10.2%] | 11 |
19+
| Regressions ❌ <br /> (secondary) | 1.5% | [0.4%, 7.7%] | 9 |
20+
| Improvements ✅ <br /> (primary) | -1.7% | [-5.9%, -0.2%] | 112 |
21+
| Improvements ✅ <br /> (secondary) | -1.3% | [-2.7%, -0.4%] | 41 |
22+
| All ❌✅ (primary) | -1.3% | [-5.9%, 10.2%] | 123 |
23+
24+
25+
3 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups
26+
84 artifact comparisons made in total
27+
28+
#### Regressions
29+
30+
Add `FreezeLock` type and use it to store `Definitions` [#115401](https://github.com/rust-lang/rust/pull/115401) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c1d80ba9e28a9248158ab09fe593b0724647e642&end=a0c28cd9dc99d9acb015d06f6b27c640adad3550&stat=instructions:u)
31+
32+
| (instructions:u) | mean | range | count |
33+
|:----------------------------------:|:----:|:------------:|:-----:|
34+
| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 11 |
35+
| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 1 |
36+
| Improvements ✅ <br /> (primary) | - | - | 0 |
37+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
38+
| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 11 |
39+
40+
* The impact here is [hypothesized to be](https://github.com/rust-lang/rust/pull/115401#issuecomment-1709461275) due to serial/parallel trade-off; we benchmark the serial case and observe a small regression, while the parallel case is observing an improvement of roughly the same caliber.
41+
* Marked as triaged
42+
43+
Rollup of 6 pull requests [#115672](https://github.com/rust-lang/rust/pull/115672) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=cd71a37f320c379df47ff64abd934f3a2da94c26&end=309af3442a1808888e3ceb2eacccbf4140eba1e0&stat=instructions:u)
44+
45+
| (instructions:u) | mean | range | count |
46+
|:----------------------------------:|:----:|:------------:|:-----:|
47+
| Regressions ❌ <br /> (primary) | 4.2% | [0.8%, 9.8%] | 5 |
48+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
49+
| Improvements ✅ <br /> (primary) | - | - | 0 |
50+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
51+
| All ❌✅ (primary) | 4.2% | [0.8%, 9.8%] | 5 |
52+
53+
* already marked as triaged
54+
* all five regressions are to doc benchmarks, due to new feature added in https://github.com/rust-lang/rust/pull/115201
55+
56+
Use the same DISubprogram for each instance of the same inlined function within a caller [#115417](https://github.com/rust-lang/rust/pull/115417) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ffc48e3eda36e288f76b4022d72d94321887ebf5&end=62ebe3a2b177d50ec664798d731b8a8d1a9120d1&stat=instructions:u)
57+
58+
| (instructions:u) | mean | range | count |
59+
|:----------------------------------:|:----:|:------------:|:-----:|
60+
| Regressions ❌ <br /> (primary) | 1.0% | [0.6%, 1.3%] | 3 |
61+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
62+
| Improvements ✅ <br /> (primary) | - | - | 0 |
63+
| Improvements ✅ <br /> (secondary) | - | - | 0 |
64+
| All ❌✅ (primary) | 1.0% | [0.6%, 1.3%] | 3 |
65+
66+
* already marked as triaged
67+
* regression was expected, though we may be able to claw back performance after resolving rust#115455
68+
69+
#### Improvements
70+
71+
Span tweaks [#115594](https://github.com/rust-lang/rust/pull/115594) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=38bbc2ce03a2369d96898d58cc0aa06f1a4b5dcf&end=6cc1898f5f4f3ffec96ce2b7c3be723db558d470&stat=instructions:u)
72+
73+
| (instructions:u) | mean | range | count |
74+
|:----------------------------------:|:-----:|:--------------:|:-----:|
75+
| Regressions ❌ <br /> (primary) | - | - | 0 |
76+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
77+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
78+
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.3%] | 6 |
79+
| All ❌✅ (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
80+
81+
82+
Disentangle `Debug` and `Display` for `Ty`. [#115661](https://github.com/rust-lang/rust/pull/115661) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e39976ff89f91b742916349859e8d877a4876783&end=7d1e416d3234bdfed6443dc2e4301f2d6f063525&stat=instructions:u)
83+
84+
| (instructions:u) | mean | range | count |
85+
|:----------------------------------:|:-----:|:--------------:|:-----:|
86+
| Regressions ❌ <br /> (primary) | - | - | 0 |
87+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
88+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.2%] | 4 |
89+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.2%] | 3 |
90+
| All ❌✅ (primary) | -0.3% | [-0.3%, -0.2%] | 4 |
91+
92+
93+
#### Mixed
94+
95+
Represent MIR composite debuginfo as projections instead of aggregates [#115252](https://github.com/rust-lang/rust/pull/115252) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a0c28cd9dc99d9acb015d06f6b27c640adad3550&end=a5b2ac6906d2b688db4938f842057cde6054449c&stat=instructions:u)
96+
97+
| (instructions:u) | mean | range | count |
98+
|:----------------------------------:|:-----:|:--------------:|:-----:|
99+
| Regressions ❌ <br /> (primary) | 3.9% | [3.9%, 3.9%] | 1 |
100+
| Regressions ❌ <br /> (secondary) | - | - | 0 |
101+
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.3%] | 2 |
102+
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.4%, -0.3%] | 4 |
103+
| All ❌✅ (primary) | 1.1% | [-0.3%, 3.9%] | 3 |
104+
105+
* The single regression is to exa-0.10.1-opt-full
106+
* However, nnethercote noted that this PR introduced broad (if small)
107+
regressions to linked artifact (aka binary) sizes (in both opt and debug settings)
108+
* not marking as triaged
109+
110+
Use a specialized varint + bitpacking scheme for DepGraph encoding [#110050](https://github.com/rust-lang/rust/pull/110050) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4e5b31c2b0023dba53a1b2827f4b7ac42aaaa18f&end=f00c1399987c60b4e884afc42f4aa6226855e9ae&stat=instructions:u)
111+
112+
| (instructions:u) | mean | range | count |
113+
|:----------------------------------:|:-----:|:--------------:|:-----:|
114+
| Regressions ❌ <br /> (primary) | - | - | 0 |
115+
| Regressions ❌ <br /> (secondary) | 0.5% | [0.3%, 0.8%] | 4 |
116+
| Improvements ✅ <br /> (primary) | -1.7% | [-5.8%, -0.3%] | 104 |
117+
| Improvements ✅ <br /> (secondary) | -1.4% | [-2.9%, -0.5%] | 32 |
118+
| All ❌✅ (primary) | -1.7% | [-5.8%, -0.3%] | 104 |
119+
120+
* on its surface, the improvements to instruction counts here clearly outweigh the regressions
121+
* it is worth noting that the cycle counts did not see the same trends;
122+
there were zero improvements and 7 primary regressions to cycle counts.
123+
* still, marking as triaged; this PR has gone through enough performance evaluation already.
124+
125+
Rollup of 7 pull requests [#115665](https://github.com/rust-lang/rust/pull/115665) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3d249706aa8b0167dd49efa1b3ce7cc0e9cbba08&end=de4cba3a98a15a891ad708a049c7fb5682083d97&stat=instructions:u)
126+
127+
| (instructions:u) | mean | range | count |
128+
|:----------------------------------:|:-----:|:--------------:|:-----:|
129+
| Regressions ❌ <br /> (primary) | 0.7% | [0.6%, 0.7%] | 2 |
130+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.5%, 0.7%] | 5 |
131+
| Improvements ✅ <br /> (primary) | - | - | 0 |
132+
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.3%, -0.3%] | 1 |
133+
| All ❌✅ (primary) | 0.7% | [0.6%, 0.7%] | 2 |
134+
135+
* primary regressions were helloworld-check (incr-unchanged and incr-patched:println)
136+
* marking as triaged; not worth investigating a rollup for that benchmark.
137+
138+
Avoid a `source_span` query when encoding Spans into query results [#115657](https://github.com/rust-lang/rust/pull/115657) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5ede9408945b46ab183dd228253297bdf62304f7&end=38bbc2ce03a2369d96898d58cc0aa06f1a4b5dcf&stat=instructions:u)
139+
140+
| (instructions:u) | mean | range | count |
141+
|:----------------------------------:|:-----:|:--------------:|:-----:|
142+
| Regressions ❌ <br /> (primary) | 0.4% | [0.3%, 0.4%] | 2 |
143+
| Regressions ❌ <br /> (secondary) | 0.7% | [0.4%, 1.0%] | 7 |
144+
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 2 |
145+
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.6%, -0.4%] | 4 |
146+
| All ❌✅ (primary) | -0.0% | [-0.4%, 0.4%] | 4 |
147+
148+
* primary regressions are to diesel-check (full and incr-full).
149+
* This is fixing a soundness issue with the dep-graph maintenance; therefore, these regressions seem tolerable.
150+
* Marking as triaged
151+
152+
Encode only MIR reachable from other crates [#115306](https://github.com/rust-lang/rust/pull/115306) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8e37c509fda1f7387895e33783cba94ea3960a29&end=7418413a7fad1c4e8b82f970bd78af030e5f813e&stat=instructions:u)
153+
154+
| (instructions:u) | mean | range | count |
155+
|:----------------------------------:|:-----:|:--------------:|:-----:|
156+
| Regressions ❌ <br /> (primary) | 0.8% | [0.3%, 2.4%] | 15 |
157+
| Regressions ❌ <br /> (secondary) | 1.9% | [0.3%, 9.1%] | 7 |
158+
| Improvements ✅ <br /> (primary) | -1.3% | [-2.7%, -0.4%] | 12 |
159+
| Improvements ✅ <br /> (secondary) | -0.9% | [-1.2%, -0.7%] | 5 |
160+
| All ❌✅ (primary) | -0.1% | [-2.7%, 2.4%] | 27 |
161+
162+
* the big (>1%) primary regressions were to three check-incr-unchanged cases: cranelift-codegen-0.82.1, html5ever-0.26.0, and hyper-0.14.18
163+
* the regressions seem unfortunate, but tolerable given the improvement to linked artifact sizes
164+
* marking as triaged

0 commit comments

Comments
 (0)