|
| 1 | +# 2025-10-27 Triage Log |
| 2 | + |
| 3 | +Mostly negative week, coming almost entirely from adding sizedness bounds in [#142712](https://github.com/rust-lang/rust/pull/142712). Other than that, we got a nice win for async code from state transform optimization in [#147493](https://github.com/rust-lang/rust/pull/147493) and quite a few smaller improvements from codegen optimization in [#147890](https://github.com/rust-lang/rust/pull/147890). |
| 4 | + |
| 5 | +Triage done by **@panstromek**. |
| 6 | +Revision range: [4068bafe..23fced0f](https://perf.rust-lang.org/?start=4068bafedd8ba724e332a5221c06a6fa531a30d2&end=23fced0fcc5e0ec260d25f04a8b78b269e5e90f0&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +**Summary**: |
| 9 | + |
| 10 | +| (instructions:u) | mean | range | count | |
| 11 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 12 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.2%, 3.7%] | 113 | |
| 13 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.7%] | 75 | |
| 14 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.7%, -0.2%] | 3 | |
| 15 | +| Improvements ✅ <br /> (secondary) | -2.3% | [-20.8%, -0.1%] | 30 | |
| 16 | +| All ❌✅ (primary) | 0.7% | [-0.7%, 3.7%] | 116 | |
| 17 | + |
| 18 | + |
| 19 | +2 Regressions, 2 Improvements, 7 Mixed; 2 of them in rollups |
| 20 | +42 artifact comparisons made in total |
| 21 | + |
| 22 | +#### Regressions |
| 23 | + |
| 24 | +Rollup of 5 pull requests [#148059](https://github.com/rust-lang/rust/pull/148059) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=38bc2468dea062750e767bdd5c25f8279275baa0&end=75948c8bb3bd37f1e8ee20273a04edea4c1f84f8&stat=instructions:u) |
| 25 | + |
| 26 | +| (instructions:u) | mean | range | count | |
| 27 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 28 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.4%] | 35 | |
| 29 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 1.5%] | 34 | |
| 30 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 31 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 32 | +| All ❌✅ (primary) | 0.2% | [0.1%, 0.4%] | 35 | |
| 33 | + |
| 34 | +Identified by @Zalathar here: https://github.com/rust-lang/rust/pull/148054#issuecomment-3445258937, will be addressed in a followup. |
| 35 | + |
| 36 | +Mark desugared range expression spans with DesugaringKind::RangeExpr [#146069](https://github.com/rust-lang/rust/pull/146069) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b1b464d6f61ec8c4e609c1328106378c066a9729&end=23fced0fcc5e0ec260d25f04a8b78b269e5e90f0&stat=instructions:u) |
| 37 | + |
| 38 | +| (instructions:u) | mean | range | count | |
| 39 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 40 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.3%] | 8 | |
| 41 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.3%] | 13 | |
| 42 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 43 | +| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 1 | |
| 44 | +| All ❌✅ (primary) | 0.2% | [0.1%, 0.3%] | 8 | |
| 45 | + |
| 46 | +Regression was deemed acceptable here: https://github.com/rust-lang/rust/pull/146069#issuecomment-3392694635 |
| 47 | + |
| 48 | +Note that the regression mostly affects very short benchmarks (incr-unchanged and such), so this is not as bad as it might seem from the summary. |
| 49 | + |
| 50 | +#### Improvements |
| 51 | + |
| 52 | +refactor: Move to anstream + anstyle for styling [#147207](https://github.com/rust-lang/rust/pull/147207) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4d94478977b5d6c0caa1e66390c6b137520af368&end=dc1feabef242259d61bd930713de3250577c1c71&stat=instructions:u) |
| 53 | + |
| 54 | +| (instructions:u) | mean | range | count | |
| 55 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 56 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 57 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 58 | +| Improvements ✅ <br /> (primary) | -0.1% | [-0.2%, -0.1%] | 11 | |
| 59 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 60 | +| All ❌✅ (primary) | -0.1% | [-0.2%, -0.1%] | 11 | |
| 61 | + |
| 62 | + |
| 63 | +StateTransform: Only load pin field once. [#147493](https://github.com/rust-lang/rust/pull/147493) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=04ff05c9c0cfbca33115c5f1b8bb20a66a54b799&end=79966ae420f38c5861d177356a3446023c090d6d&stat=instructions:u) |
| 64 | + |
| 65 | +| (instructions:u) | mean | range | count | |
| 66 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 67 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 68 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 69 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 70 | +| Improvements ✅ <br /> (secondary) | -0.9% | [-1.9%, -0.3%] | 15 | |
| 71 | +| All ❌✅ (primary) | - | - | 0 | |
| 72 | + |
| 73 | + |
| 74 | +#### Mixed |
| 75 | + |
| 76 | +Remove current code for embedding command-line args in PDB [#147022](https://github.com/rust-lang/rust/pull/147022) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=37ec98f5d33c0876a9ffa5ee17dc0895659efe37&end=96fe3c31c2ec385f3d3263346bcdde3d118cdaf6&stat=instructions:u) |
| 77 | + |
| 78 | +| (instructions:u) | mean | range | count | |
| 79 | +|:----------------------------------:|:-----:|:---------------:|:-----:| |
| 80 | +| Regressions ❌ <br /> (primary) | 1.2% | [1.2%, 1.2%] | 1 | |
| 81 | +| Regressions ❌ <br /> (secondary) | 1.2% | [1.2%, 1.2%] | 1 | |
| 82 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 6 | |
| 83 | +| Improvements ✅ <br /> (secondary) | -4.2% | [-20.9%, -0.3%] | 14 | |
| 84 | +| All ❌✅ (primary) | -0.1% | [-0.4%, 1.2%] | 7 | |
| 85 | + |
| 86 | +`syn` regression is noise. |
| 87 | + |
| 88 | +Rollup of 7 pull requests [#147957](https://github.com/rust-lang/rust/pull/147957) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0d7813d9a227efc1e5fee4716615b4c417dafcbe&end=b2ee1b333aea9951c3eefa4967098cc763de59ca&stat=instructions:u) |
| 89 | + |
| 90 | +| (instructions:u) | mean | range | count | |
| 91 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 92 | +| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.1%] | 2 | |
| 93 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.0%, 0.7%] | 6 | |
| 94 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 95 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | |
| 96 | +| All ❌✅ (primary) | 0.1% | [0.1%, 0.1%] | 2 | |
| 97 | + |
| 98 | +Small regression in the frontend on a few benchmarks. Regressions seem to come from `incremental_verify_ich` which doesn't run by default and `check_mod_privacy`, so I suspect this is either https://github.com/rust-lang/rust/pull/147932 (more code in std), or maybe https://github.com/rust-lang/rust/pull/147768 (refactor on the frontend), or https://github.com/rust-lang/rust/pull/142339 (more frontend work). Unfortunately, we don't have unrolled perf builds for PRs in this rollup, so it's a bit complicated to investigate further. Changes are small, so I don't think this is worth more investigation. |
| 99 | + |
| 100 | +Replace NullOp::SizeOf and NullOp::AlignOf by lang items. [#147793](https://github.com/rust-lang/rust/pull/147793) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7838ce1a3a0046d02c8a0d30d54465c39cceb8de&end=4b3ba5844e8831c9b3ee5a5643cdff5da0677426&stat=instructions:u) |
| 101 | + |
| 102 | +| (instructions:u) | mean | range | count | |
| 103 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 104 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.5%] | 3 | |
| 105 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.1%, 0.7%] | 30 | |
| 106 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.7%, -0.1%] | 4 | |
| 107 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.7%, -0.1%] | 5 | |
| 108 | +| All ❌✅ (primary) | -0.1% | [-0.7%, 0.5%] | 7 | |
| 109 | + |
| 110 | +Justified by https://github.com/rust-lang/rust/pull/147793#issuecomment-3424111320 and https://github.com/rust-lang/rust/pull/147793#issuecomment-3424123985. Post-merge results seem worse, mostly because there's some `deep-vector` spike that came back in https://github.com/rust-lang/rust/pull/142712 (possibly noise?). |
| 111 | + |
| 112 | +privacy: Introduce some caching to type visiting in `DefIdVisitorSkeleton` [#147486](https://github.com/rust-lang/rust/pull/147486) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=11d2046fe9962720558cb15f72541f7fd170dec9&end=6501e64fcb02d22b49d6e59d10a7692ec8095619&stat=instructions:u) |
| 113 | + |
| 114 | +| (instructions:u) | mean | range | count | |
| 115 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 116 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.0%, 0.4%] | 17 | |
| 117 | +| Regressions ❌ <br /> (secondary) | 0.7% | [0.1%, 1.2%] | 6 | |
| 118 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.5%, -0.2%] | 7 | |
| 119 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 120 | +| All ❌✅ (primary) | 0.0% | [-0.5%, 0.4%] | 24 | |
| 121 | + |
| 122 | +This PR fixes exponential blowup. Small regressions from caching overhead are expected. Asked the author whether we should add the original exponential case to our benchmarks, it looks like it got discussed here: https://github.com/rust-lang/rust/pull/146128#discussion_r2447992775. |
| 123 | + |
| 124 | +hir_analysis: add missing sizedness bounds [#142712](https://github.com/rust-lang/rust/pull/142712) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2aaa62b89d22b570e560731b03e3d2d6f5c3bbce&end=f435972085b697a1ece8ee6a1ac76efff8d1df7b&stat=instructions:u) |
| 125 | + |
| 126 | +| (instructions:u) | mean | range | count | |
| 127 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 128 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.1%, 3.6%] | 72 | |
| 129 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.0%, 1.6%] | 63 | |
| 130 | +| Improvements ✅ <br /> (primary) | -0.1% | [-0.1%, -0.1%] | 1 | |
| 131 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.4%, -0.1%] | 23 | |
| 132 | +| All ❌✅ (primary) | 0.8% | [-0.1%, 3.6%] | 73 | |
| 133 | + |
| 134 | +Pretty large regresion on many benchmarks. There was no perf run or perf concern mentioned before so it looks unexpected. Pinged the author. |
| 135 | + |
| 136 | +Improve source code for `highlight.rs` [#146992](https://github.com/rust-lang/rust/pull/146992) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2888098522be731065efe51f85eaba8b49fee1a5&end=f977dfc388ea39c9886b7f8c49abce26e6918df6&stat=instructions:u) |
| 137 | + |
| 138 | +| (instructions:u) | mean | range | count | |
| 139 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 140 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.1%, 0.2%] | 6 | |
| 141 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.1%, 0.3%] | 3 | |
| 142 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 143 | +| Improvements ✅ <br /> (secondary) | -0.1% | [-0.1%, -0.1%] | 1 | |
| 144 | +| All ❌✅ (primary) | 0.2% | [0.1%, 0.2%] | 6 | |
| 145 | + |
| 146 | +Small regressions were expected based on the pre-merge run and following comment: https://github.com/rust-lang/rust/pull/146992#issuecomment-3410213402. Overall the impact is not big and looks partially like noise, since the results got better in next PR (which is unrelated). |
| 147 | + |
| 148 | +Deduce captures(none) for a return place and parameters [#147890](https://github.com/rust-lang/rust/pull/147890) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f977dfc388ea39c9886b7f8c49abce26e6918df6&end=f37aa9955f03bb1bc6fe08670cb1ecae534b5815&stat=instructions:u) |
| 149 | + |
| 150 | +| (instructions:u) | mean | range | count | |
| 151 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 152 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 1 | |
| 153 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.1%, 1.1%] | 3 | |
| 154 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.5%, -0.1%] | 31 | |
| 155 | +| Improvements ✅ <br /> (secondary) | -0.3% | [-0.6%, -0.0%] | 34 | |
| 156 | +| All ❌✅ (primary) | -0.2% | [-0.5%, 0.3%] | 32 | |
| 157 | + |
| 158 | +Improvements outweigh regressions. |
0 commit comments