Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 128 additions & 0 deletions triage/2025/2025-11-25.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# 2025-11-25 Triage Log

Only a handful of performance-related changes landed this week. The largest one was changing the default name mangling scheme in nightly to the v0 version, which produces slightly larger symbol names, so it had a small negative effect on binary sizes and compilation time.

Triage done by **@kobzol**.
Revision range: [6159a440..b64df9d1](https://perf.rust-lang.org/?start=6159a44067ebce42b38f062cc7df267a1348e092&end=b64df9d1012f2482b54a4d959548cf8fc67e820c&absolute=false&stat=instructions%3Au)

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.9% | [0.3%, 2.7%] | 48 |
| Regressions ❌ <br /> (secondary) | 0.9% | [0.2%, 2.1%] | 25 |
| Improvements ✅ <br /> (primary) | -0.5% | [-6.8%, -0.1%] | 33 |
| Improvements ✅ <br /> (secondary) | -0.5% | [-1.4%, -0.1%] | 53 |
| All ❌✅ (primary) | 0.4% | [-6.8%, 2.7%] | 81 |


1 Regression, 2 Improvements, 5 Mixed; 1 of them in rollups
28 artifact comparisons made in total

#### Regressions

Turn moves into copies after copy propagation [#147804](https://github.com/rust-lang/rust/pull/147804) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=23f708107b459ed551a860ef0bf8b61bc80b48b4&end=122cbd043833a1d7540cc5f99c458bfca2d3c525&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:----:|:------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.6% | [0.1%, 0.9%] | 6 |
| Regressions ❌ <br /> (secondary) | 0.8% | [0.8%, 0.8%] | 1 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | 0.6% | [0.1%, 0.9%] | 6 |

- The perf. regression was deemed acceptable, as this fixes miscompilations.
- Marked as triaged.

#### Improvements

Bump compiler dependencies [#148831](https://github.com/rust-lang/rust/pull/148831) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=27b076af7e3e7a363975443d81dfa9ecee5a74ec&end=5934b0655768a45aad237a704995780276b91261&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.6%, -0.1%] | 27 |
| Improvements ✅ <br /> (secondary) | -0.4% | [-1.3%, -0.1%] | 36 |
| All ❌✅ (primary) | -0.3% | [-0.6%, -0.1%] | 27 |


Rollup of 9 pull requests [#149222](https://github.com/rust-lang/rust/pull/149222) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4b1b6dde0c15243857165672a1c616a4523ef32a&end=94b49fd998d6723e0a9240a7cff5f9df37b84dd8&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 3 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | -0.2% | [-0.2%, -0.2%] | 3 |


#### Mixed

Update wasm-related dependencies in CI [#149037](https://github.com/rust-lang/rust/pull/149037) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6159a44067ebce42b38f062cc7df267a1348e092&end=a591113c0a2b7755514c47bde211fdb92d1d7002&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.4% | [0.4%, 0.4%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 0.9%] | 9 |
| Improvements ✅ <br /> (primary) | -2.8% | [-2.8%, -2.8%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
| All ❌✅ (primary) | -1.2% | [-2.8%, 0.4%] | 2 |

- Noise.
- Already marked as triaged.

sess: default to v0 symbol mangling on nightly [#89917](https://github.com/rust-lang/rust/pull/89917) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d2f887349fe3ea079a4f89b020ce6df1993e1e06&end=683dd08db5808c41baceef49368fc82a6c4767bb&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.7% | [0.2%, 1.5%] | 31 |
| Regressions ❌ <br /> (secondary) | 0.7% | [0.2%, 1.6%] | 14 |
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.2% | [-0.6%, -0.1%] | 6 |
| All ❌✅ (primary) | 0.7% | [-0.4%, 1.5%] | 32 |

- This PR caused binary size regressions, which is expected, as the v0 mangling scheme produces larger symbols than the legacy mangling scheme, in general.
- The compile-time regressions were likely caused by the same thing, more symbol string handling and more time spent in LLVM due to processing longer symbols.
- Marked as triaged.

See if this is the time we can remove `layout::size_align` [#149109](https://github.com/rust-lang/rust/pull/149109) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7281a3bc4b89a010aed05528d648450feb8b69d3&end=53732d5e076329a62f71d3c6901886ce8a71e812&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 0.6%] | 4 |
| Improvements ✅ <br /> (primary) | - | - | 0 |
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.3%, -0.2%] | 8 |
| All ❌✅ (primary) | - | - | 0 |

- Just noise returning to steady state.
- Already marked as triaged.

library: upgrade to hashbrown v0.16.1 [#149159](https://github.com/rust-lang/rust/pull/149159) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=af17d59d71cd344fb34caab3e96c88b7c137f872&end=1dd43f247e6ec20a84dd017e4665266fa65e3a89&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.7% | [0.4%, 1.4%] | 4 |
| Regressions ❌ <br /> (secondary) | 1.5% | [1.5%, 1.5%] | 1 |
| Improvements ✅ <br /> (primary) | -0.2% | [-0.2%, -0.2%] | 2 |
| Improvements ✅ <br /> (secondary) | -0.3% | [-0.5%, -0.1%] | 25 |
| All ❌✅ (primary) | 0.4% | [-0.2%, 1.4%] | 6 |

- More improvements than regressions.
- Marked as triaged.

Fix MaybeUninit codegen using GVN [#147827](https://github.com/rust-lang/rust/pull/147827) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=122cbd043833a1d7540cc5f99c458bfca2d3c525&end=e9acbd99d384280874129fb7fa0da9faeae0d051&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.1%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.5%] | 6 |
| Improvements ✅ <br /> (primary) | -7.3% | [-7.3%, -7.3%] | 1 |
| Improvements ✅ <br /> (secondary) | - | - | 0 |
| All ❌✅ (primary) | -3.6% | [-7.3%, 0.1%] | 2 |

- Tiny regressions on secondary benchmarks, but a large (and real) win on the cranelift-codegen opt benchmark.
- This should ideally produce better codegen.
- Marked as triaged.
Loading