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
215 changes: 215 additions & 0 deletions triage/2025/2025-11-19.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# 2025-11-19 Triage Log

Positive week, most notably because of the new format_args!() and fmt::Arguments implementation from [#148789](https://github.com/rust-lang/rust/pull/148789). Another notable improvement came from moving some computations from one compiler stage to another to save memory and unnecessary tree traversals in [#148706](https://github.com/rust-lang/rust/pull/148706)

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

**Summary**:

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | 1.6% | [0.2%, 5.6%] | 11 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 1.1%] | 26 |
| Improvements ✅ <br /> (primary) | -0.8% | [-4.5%, -0.1%] | 161 |
| Improvements ✅ <br /> (secondary) | -1.4% | [-38.1%, -0.1%] | 168 |
| All ❌✅ (primary) | -0.6% | [-4.5%, 5.6%] | 172 |


2 Regressions, 4 Improvements, 10 Mixed; 4 of them in rollups
48 artifact comparisons made in total

#### Regressions

Rollup of 7 pull requests [#148885](https://github.com/rust-lang/rust/pull/148885) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=503dce33e2e2a5d2fe978b2723ab2a994cc27472&end=5dbf4069dc98bbbca98dd600a65f50c258fbfd56&stat=instructions:u)

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

`clap_derive` bimodal noise

Rollup of 11 pull requests [#148988](https://github.com/rust-lang/rust/pull/148988) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=54f417673c9733bf8f8ce126e4a0e299536cb3d6&end=67c4cf395f243afcb973dacdd39b16895c9ad295&stat=instructions:u)

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

Triaged by @Zalathar: The clap_derive result looks pretty clearly bimodal. The secondary regressions are plausibly real, but don’t seem big enough to be worth investigating.

#### Improvements

Upgrade `stringdex` to 0.0.3 [#147918](https://github.com/rust-lang/rust/pull/147918) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5dbf4069dc98bbbca98dd600a65f50c258fbfd56&end=d682af88a57b0045f8348507682c16c6160b522d&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.6% | [-2.9%, -0.1%] | 14 |
| Improvements ✅ <br /> (secondary) | -0.7% | [-1.4%, -0.3%] | 3 |
| All ❌✅ (primary) | -0.6% | [-2.9%, -0.1%] | 14 |


rustdoc: microoptimize render_item, move stuff out of common path [#148877](https://github.com/rust-lang/rust/pull/148877) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f35a2bee641e88742b6de10b25c748ef57475f24&end=e65b983161d52688ff8e05245ed5dc70ef01a904&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -1.5% | [-3.0%, -0.3%] | 3 |
| Improvements ✅ <br /> (secondary) | -1.1% | [-2.9%, -0.1%] | 4 |
| All ❌✅ (primary) | -1.5% | [-3.0%, -0.3%] | 3 |


const-eval: fix and re-enable pointer fragment support [#148259](https://github.com/rust-lang/rust/pull/148259) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=67c4cf395f243afcb973dacdd39b16895c9ad295&end=e1a2ec605124d9f9b0095435faef70bd4bd3f128&stat=instructions:u)

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


Rollup of 4 pull requests [#149059](https://github.com/rust-lang/rust/pull/149059) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f9e7961506a97b318ad4815b8ce94bb045562f89&end=3d461af2a23456a2676aadb13b4253c87bdfe28d&stat=instructions:u)

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


#### Mixed

cleanup: merge `RvalueScopes` into `ScopeTree` [#148658](https://github.com/rust-lang/rust/pull/148658) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2636cb4c1328f5a3ab05b8d13a666ac5f3a48a08&end=25d319a0f656ee8faa7a534da299e76e96068a40&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 3.1% | [3.1%, 3.1%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.5% | [0.0%, 0.6%] | 5 |
| Improvements ✅ <br /> (primary) | -0.1% | [-0.1%, -0.1%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.0%] | 7 |
| All ❌✅ (primary) | 1.5% | [-0.1%, 3.1%] | 2 |

`clap_derive` regression is noise. Other secondary regressions were identified in pre-merge perf run, investigated by in https://github.com/rust-lang/rust/pull/148658#issuecomment-3506150724 and accepted by reviewer in https://github.com/rust-lang/rust/pull/148658#issuecomment-3517842065

Rollup of 16 pull requests [#148851](https://github.com/rust-lang/rust/pull/148851) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=11339a0ef5ed586bb7ea4f85a9b7287880caac3a&end=0b329f801a09004dacb19aaf09d5cb8b4c51d3f8&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 2.1% | [1.1%, 3.5%] | 20 |
| Regressions ❌ <br /> (secondary) | 1.4% | [0.2%, 2.8%] | 25 |
| Improvements ✅ <br /> (primary) | -3.0% | [-3.0%, -3.0%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.4% | [-0.5%, -0.2%] | 2 |
| All ❌✅ (primary) | 1.9% | [-3.0%, 3.5%] | 21 |

Regression was identified as https://github.com/rust-lang/rust/pull/146627, which was reverted.

New format_args!() and fmt::Arguments implementation [#148789](https://github.com/rust-lang/rust/pull/148789) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=01867557cd7dbe256a031a7b8e28d05daecd75ab&end=503dce33e2e2a5d2fe978b2723ab2a994cc27472&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.7% | [0.1%, 5.7%] | 17 |
| Regressions ❌ <br /> (secondary) | 0.6% | [0.1%, 1.1%] | 40 |
| Improvements ✅ <br /> (primary) | -0.7% | [-4.4%, -0.1%] | 120 |
| Improvements ✅ <br /> (secondary) | -1.6% | [-38.5%, -0.0%] | 106 |
| All ❌✅ (primary) | -0.5% | [-4.4%, 5.7%] | 137 |

Improvements outweigh regressions.

Revert "Rollup merge of #146627 - madsmtm:jemalloc-simplify, r=jdonszelmann" [#148896](https://github.com/rust-lang/rust/pull/148896) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2286e5d224b3413484cf4f398a9f078487e7b49d&end=7a72c5459dd58f81b0e1a0e5436d145485889375&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | - | - | 0 |
| Regressions ❌ <br /> (secondary) | 0.9% | [0.2%, 1.1%] | 7 |
| Improvements ✅ <br /> (primary) | -2.1% | [-3.4%, -1.1%] | 20 |
| Improvements ✅ <br /> (secondary) | -1.4% | [-2.7%, -0.2%] | 25 |
| All ❌✅ (primary) | -2.1% | [-3.4%, -1.1%] | 20 |

Reverts a previous regression.

compute temporary scopes when building MIR, not THIR [#148706](https://github.com/rust-lang/rust/pull/148706) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=77761f314d7243da0fa3b6ca214eeecd51e956e0&end=733108b6d4acaa93fe26ae281ea305aacd6aac4e&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 2.9% | [2.9%, 2.9%] | 1 |
| Regressions ❌ <br /> (secondary) | 1.7% | [1.7%, 1.7%] | 1 |
| Improvements ✅ <br /> (primary) | -0.4% | [-1.8%, -0.1%] | 55 |
| Improvements ✅ <br /> (secondary) | -0.9% | [-3.1%, -0.0%] | 80 |
| All ❌✅ (primary) | -0.3% | [-1.8%, 2.9%] | 56 |

`clap_derive` regression is noise, otherwise this is an improvement.

Update wasm-component-ld to 0.5.19 [#148954](https://github.com/rust-lang/rust/pull/148954) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=733108b6d4acaa93fe26ae281ea305aacd6aac4e&end=f35a2bee641e88742b6de10b25c748ef57475f24&stat=instructions:u)

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

`wg-grammar` looks like noise (it returned back in next PR). `clap_derive` improvement is also noise.

use funnel shift as fallback impl for rotating shifts [#148478](https://github.com/rust-lang/rust/pull/148478) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=69d4d5fc0e4db60272aac85ef27ecccef5764f3a&end=89fe96197d232f86d733566df31c6dcebd1750da&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 3.8% | [3.8%, 3.8%] | 1 |
| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 10 |
| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 1 |
| All ❌✅ (primary) | 1.7% | [-0.4%, 3.8%] | 2 |

Investigated by author. Eza regression seems a bit mysterious. Pre-merge run from two weeks ago didn't indicate it.

Replace OffsetOf by an actual sum of calls to intrinsic. [#148151](https://github.com/rust-lang/rust/pull/148151) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c1995621a44398ac33ab368adbfb69753218b49e&end=f9e7961506a97b318ad4815b8ce94bb045562f89&stat=instructions:u)

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

`clap_derive` is noise, `include-blob` is also noise (at least the `opt` variants, other ones didn't return to previous state, but they are tiny in absolute numbers).

Inherent const impl [#148434](https://github.com/rust-lang/rust/pull/148434) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7c2c3c0ded2de378bfab2f5b55c387c66fbaf353&end=6159a44067ebce42b38f062cc7df267a1348e092&stat=instructions:u)

| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌ <br /> (primary) | 2.9% | [2.9%, 2.9%] | 1 |
| Regressions ❌ <br /> (secondary) | - | - | 0 |
| Improvements ✅ <br /> (primary) | -0.3% | [-0.3%, -0.3%] | 1 |
| Improvements ✅ <br /> (secondary) | -0.5% | [-0.9%, -0.2%] | 9 |
| All ❌✅ (primary) | 1.3% | [-0.3%, 2.9%] | 2 |

`clap_derive` noise.

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 |


Triaged by @lqd: Gotta be noise. A bunch of the changes are benchmarks returning to their previous state, fixing a spurious win.
Loading