From abaa823dbb9569ddf8d5c8a9fa4738106a4eb947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Tue, 25 Nov 2025 08:33:16 +0100 Subject: [PATCH] Add 2025-11-25 triage --- triage/2025/2025-11-25.md | 128 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 triage/2025/2025-11-25.md diff --git a/triage/2025/2025-11-25.md b/triage/2025/2025-11-25.md new file mode 100644 index 000000000..577da4bb9 --- /dev/null +++ b/triage/2025/2025-11-25.md @@ -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 ❌
(primary) | 0.9% | [0.3%, 2.7%] | 48 | +| Regressions ❌
(secondary) | 0.9% | [0.2%, 2.1%] | 25 | +| Improvements ✅
(primary) | -0.5% | [-6.8%, -0.1%] | 33 | +| Improvements ✅
(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 ❌
(primary) | 0.6% | [0.1%, 0.9%] | 6 | +| Regressions ❌
(secondary) | 0.8% | [0.8%, 0.8%] | 1 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(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 ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.3% | [-0.6%, -0.1%] | 27 | +| Improvements ✅
(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 ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | - | - | 0 | +| Improvements ✅
(primary) | -0.2% | [-0.2%, -0.2%] | 3 | +| Improvements ✅
(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 ❌
(primary) | 0.4% | [0.4%, 0.4%] | 1 | +| Regressions ❌
(secondary) | 0.5% | [0.2%, 0.9%] | 9 | +| Improvements ✅
(primary) | -2.8% | [-2.8%, -2.8%] | 1 | +| Improvements ✅
(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 ❌
(primary) | 0.7% | [0.2%, 1.5%] | 31 | +| Regressions ❌
(secondary) | 0.7% | [0.2%, 1.6%] | 14 | +| Improvements ✅
(primary) | -0.4% | [-0.4%, -0.4%] | 1 | +| Improvements ✅
(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 ❌
(primary) | - | - | 0 | +| Regressions ❌
(secondary) | 0.4% | [0.1%, 0.6%] | 4 | +| Improvements ✅
(primary) | - | - | 0 | +| Improvements ✅
(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 ❌
(primary) | 0.7% | [0.4%, 1.4%] | 4 | +| Regressions ❌
(secondary) | 1.5% | [1.5%, 1.5%] | 1 | +| Improvements ✅
(primary) | -0.2% | [-0.2%, -0.2%] | 2 | +| Improvements ✅
(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 ❌
(primary) | 0.1% | [0.1%, 0.1%] | 1 | +| Regressions ❌
(secondary) | 0.3% | [0.1%, 0.5%] | 6 | +| Improvements ✅
(primary) | -7.3% | [-7.3%, -7.3%] | 1 | +| Improvements ✅
(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.