|
| 1 | +# 2024-04-09 Triage Log |
| 2 | + |
| 3 | +A quiet week; all the outright regressions were already triaged (the one biggish one was #122077, which is justified as an important bug fix). There was a very nice set of improvements from PR #122070, which cleverly avoids a lot of unnecessary allocator calls when building an incremental dep graph by reusing the old edges from the previous graph. |
| 4 | + |
| 5 | +Triage done by **@pnkfelix**. |
| 6 | +Revision range: [3d5528c2..86b603cd](https://perf.rust-lang.org/?start=3d5528c287860b918e178a34f04ff903325571b3&end=86b603cd792b3f6172ba4f676d7b586c1af7630a&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +**Summary**: |
| 9 | + |
| 10 | +| (instructions:u) | mean | range | count | |
| 11 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 12 | +| Regressions ❌ <br /> (primary) | 2.0% | [0.4%, 5.0%] | 83 | |
| 13 | +| Regressions ❌ <br /> (secondary) | 2.1% | [0.5%, 4.8%] | 79 | |
| 14 | +| Improvements ✅ <br /> (primary) | -1.5% | [-2.9%, -0.3%] | 121 | |
| 15 | +| Improvements ✅ <br /> (secondary) | -1.4% | [-3.5%, -0.3%] | 67 | |
| 16 | +| All ❌✅ (primary) | -0.1% | [-2.9%, 5.0%] | 204 | |
| 17 | + |
| 18 | + |
| 19 | +3 Regressions, 3 Improvements, 7 Mixed; 1 of them in rollups |
| 20 | +78 artifact comparisons made in total |
| 21 | + |
| 22 | +#### Regressions |
| 23 | + |
| 24 | +instantiate higher ranked goals outside of candidate selection [#119820](https://github.com/rust-lang/rust/pull/119820) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0accf4ec4c07d23aa86f6a97aeb8797941abc30e&end=43f4f2a3b1a3d3fb3dbbbe4fde33fb97c780ee98&stat=instructions:u) |
| 25 | + |
| 26 | +| (instructions:u) | mean | range | count | |
| 27 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 28 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.3%, 0.8%] | 8 | |
| 29 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 30 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 31 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 32 | +| All ❌✅ (primary) | 0.6% | [0.3%, 0.8%] | 8 | |
| 33 | + |
| 34 | +* already triaged by Jakub as an expected small performance regresison |
| 35 | + |
| 36 | +Pass list of defineable opaque types into canonical queries [#122077](https://github.com/rust-lang/rust/pull/122077) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ab5bda1aa70f707014e2e691e43bc37a8819252a&end=b234e449443a49ab19ef6b712bf56cc65927d98f&stat=instructions:u) |
| 37 | + |
| 38 | +| (instructions:u) | mean | range | count | |
| 39 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 40 | +| Regressions ❌ <br /> (primary) | 1.9% | [0.2%, 5.4%] | 101 | |
| 41 | +| Regressions ❌ <br /> (secondary) | 2.3% | [0.3%, 4.7%] | 77 | |
| 42 | + |
| 43 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 44 | +| All ❌✅ (primary) | 1.8% | [-0.6%, 5.4%] | 102 | |
| 45 | + |
| 46 | +* already triaged by oli, as an expected performance regression that is [justified](https://github.com/rust-lang/rust/pull/122077#issuecomment-1995694305) as an important bugfix |
| 47 | + |
| 48 | +Replace some `CrateStore` trait methods with hooks. [#123099](https://github.com/rust-lang/rust/pull/123099) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=59c808fcd9eeb3c5528209d1cef3aaa5521edbd6&end=bd12986fd6659a3091cff7694b8225374f4a26fe&stat=instructions:u) |
| 49 | + |
| 50 | +| (instructions:u) | mean | range | count | |
| 51 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 52 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.2%, 0.4%] | 14 | |
| 53 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.4%] | 2 | |
| 54 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 55 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 56 | +| All ❌✅ (primary) | 0.3% | [0.2%, 0.4%] | 14 | |
| 57 | + |
| 58 | +* already triaged by oli, categorized as noise. |
| 59 | + |
| 60 | +#### Improvements |
| 61 | + |
| 62 | +hir: Drop owner's own item-local id (zero) from parenting tables [#123415](https://github.com/rust-lang/rust/pull/123415) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=703dc9ce64d9b31a239a7280d9b5f9ddd85ffed6&end=98efd808e1b77cd70a097620aad6250727167a28&stat=instructions:u) |
| 63 | + |
| 64 | +| (instructions:u) | mean | range | count | |
| 65 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 66 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 67 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 68 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 3 | |
| 69 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-1.3%, -0.3%] | 13 | |
| 70 | +| All ❌✅ (primary) | -0.3% | [-0.4%, -0.2%] | 3 | |
| 71 | + |
| 72 | + |
| 73 | +[perf] cache type info for ParamEnv [#123058](https://github.com/rust-lang/rust/pull/123058) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6f837503aa120ca69c2985b6c9a474c00674cef1&end=087ae978a13013800c8a484cf17c8951ab0b6b0c&stat=instructions:u) |
| 74 | + |
| 75 | +| (instructions:u) | mean | range | count | |
| 76 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 77 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 78 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 79 | +| Improvements ✅ <br /> (primary) | -0.9% | [-4.9%, -0.2%] | 47 | |
| 80 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 81 | +| All ❌✅ (primary) | -0.9% | [-4.9%, -0.2%] | 47 | |
| 82 | + |
| 83 | + |
| 84 | +Remove debuginfo from rustc-demangle too [#123608](https://github.com/rust-lang/rust/pull/123608) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=0e5f5207881066973486e6a480fa46cfa22947e9&end=75fd074338801fba74a8cf7f8c48c5c5be362d08&stat=instructions:u) |
| 85 | + |
| 86 | +| (instructions:u) | mean | range | count | |
| 87 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 88 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 89 | +| Regressions ❌ <br /> (secondary) | 0.6% | [0.4%, 0.9%] | 4 | |
| 90 | +| Improvements ✅ <br /> (primary) | -1.6% | [-2.7%, -0.3%] | 7 | |
| 91 | +| Improvements ✅ <br /> (secondary) | -1.3% | [-2.4%, -0.3%] | 24 | |
| 92 | +| All ❌✅ (primary) | -1.6% | [-2.7%, -0.3%] | 7 | |
| 93 | + |
| 94 | + |
| 95 | +#### Mixed |
| 96 | + |
| 97 | +Add `Ord::cmp` for primitives as a `BinOp` in MIR [#118310](https://github.com/rust-lang/rust/pull/118310) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=029cb1b13b6388b95e64e8996ec8b41a9f3cf16e&end=a77322c16f188402fa22a5e87100acce42433cbc&stat=instructions:u) |
| 98 | + |
| 99 | +| (instructions:u) | mean | range | count | |
| 100 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 101 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 0.7%] | 3 | |
| 102 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.4%] | 2 | |
| 103 | +| Improvements ✅ <br /> (primary) | -0.6% | [-0.6%, -0.6%] | 1 | |
| 104 | +| Improvements ✅ <br /> (secondary) | -3.1% | [-3.1%, -3.1%] | 1 | |
| 105 | +| All ❌✅ (primary) | 0.2% | [-0.6%, 0.7%] | 4 | |
| 106 | + |
| 107 | +* The impact here is somewhat limited, and the graph indicates that the 0.69% instruction-count regression for image-0.24.1 was subsequently recovered. |
| 108 | + |
| 109 | +Encode dep graph edges directly from the previous graph when promoting [#122070](https://github.com/rust-lang/rust/pull/122070) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d009f60b55fe4527e7ddf122bc4520f351d7b9d4&end=4563f70c3b599411836e285591479f4a3d364708&stat=instructions:u) |
| 110 | + |
| 111 | +| (instructions:u) | mean | range | count | |
| 112 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 113 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 114 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.4%, 0.4%] | 1 | |
| 115 | +| Improvements ✅ <br /> (primary) | -1.6% | [-3.1%, -0.2%] | 113 | |
| 116 | +| Improvements ✅ <br /> (secondary) | -1.5% | [-3.6%, -0.3%] | 37 | |
| 117 | +| All ❌✅ (primary) | -1.6% | [-3.1%, -0.2%] | 113 | |
| 118 | + |
| 119 | +* already marked as triaged by Jakub |
| 120 | + |
| 121 | +Implement T-types suggested logic for perfect non-local impl detection [#122747](https://github.com/rust-lang/rust/pull/122747) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ea40fa210b87a322d2259852c149ffa212a3a0da&end=9d79cd5f79e75bd0d2083260271307ce9acd9081&stat=instructions:u) |
| 122 | + |
| 123 | +| (instructions:u) | mean | range | count | |
| 124 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 125 | +| Regressions ❌ <br /> (primary) | 2.3% | [0.6%, 4.4%] | 12 | |
| 126 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 127 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 9 | |
| 128 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 129 | +| All ❌✅ (primary) | 1.2% | [-0.4%, 4.4%] | 21 | |
| 130 | + |
| 131 | +* already marked as triaged by Urgau, with the comment "The perf regressions in diesel are due to the lint being triggered and producing nearly 300 warnings (with 155 actually shown)" |
| 132 | +* (This reminds me of rustc-perf#1819) |
| 133 | + |
| 134 | +Remove sharding for VecCache [#123556](https://github.com/rust-lang/rust/pull/123556) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=087ae978a13013800c8a484cf17c8951ab0b6b0c&end=af2525317be950fdae635bcbb46b3e755d14ab49&stat=instructions:u) |
| 135 | + |
| 136 | +| (instructions:u) | mean | range | count | |
| 137 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 138 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.4%, 0.4%] | 1 | |
| 139 | +| Regressions ❌ <br /> (secondary) | 0.5% | [0.2%, 1.0%] | 5 | |
| 140 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 141 | +| Improvements ✅ <br /> (secondary) | -0.9% | [-1.1%, -0.7%] | 4 | |
| 142 | +| All ❌✅ (primary) | 0.4% | [0.4%, 0.4%] | 1 | |
| 143 | + |
| 144 | +* already marked as triaged by simulacrum, presumably because this is likely noise since it is "just" removing the sharded type whose feature was not in use. |
| 145 | + |
| 146 | +Use unchecked_sub in str indexing [#123561](https://github.com/rust-lang/rust/pull/123561) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fc1a4c5cc9308c4b5980c64a73fd344a59c10601&end=4e431fad67b46c480f1833119cd368fa33df95f7&stat=instructions:u) |
| 147 | + |
| 148 | +| (instructions:u) | mean | range | count | |
| 149 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 150 | +| Regressions ❌ <br /> (primary) | 0.9% | [0.9%, 0.9%] | 1 | |
| 151 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 152 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 153 | +| Improvements ✅ <br /> (secondary) | -0.5% | [-0.9%, -0.4%] | 7 | |
| 154 | +| All ❌✅ (primary) | 0.9% | [0.9%, 0.9%] | 1 | |
| 155 | + |
| 156 | +* this is an improvement to the code for `str::get_unchecked` when overflow checks are enabled; its calling a compiler-intrinsic directly now. |
| 157 | +* it really doesn't make any sense that it caused any regression at all. (Perhaps this change is causing a change to inlining decisions, at least for cargo?) |
| 158 | +* marking as triaged. |
| 159 | + |
| 160 | +Rollup of 9 pull requests [#123645](https://github.com/rust-lang/rust/pull/123645) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=211518e5fb1336de6a4aab45dc1c05f5d83ce856&end=ab5bda1aa70f707014e2e691e43bc37a8819252a&stat=instructions:u) |
| 161 | + |
| 162 | +| (instructions:u) | mean | range | count | |
| 163 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 164 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.6%, 0.6%] | 1 | |
| 165 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 166 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.3%] | 2 | |
| 167 | +| Improvements ✅ <br /> (secondary) | -1.8% | [-1.8%, -1.8%] | 1 | |
| 168 | +| All ❌✅ (primary) | -0.0% | [-0.4%, 0.6%] | 3 | |
| 169 | + |
| 170 | +* Looks like a temporary spike. Marking as triaged. |
| 171 | + |
| 172 | +Only collect mono items from reachable blocks [#123272](https://github.com/rust-lang/rust/pull/123272) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=86b603cd792b3f6172ba4f676d7b586c1af7630a&end=bb78dba64ca4158ef2f3488d0d41a82c75a504f2&stat=instructions:u) |
| 173 | + |
| 174 | +| (instructions:u) | mean | range | count | |
| 175 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 176 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.2%, 1.5%] | 8 | |
| 177 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 178 | +| Improvements ✅ <br /> (primary) | -0.8% | [-1.5%, -0.3%] | 6 | |
| 179 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 180 | +| All ❌✅ (primary) | -0.1% | [-1.5%, 1.5%] | 14 | |
| 181 | + |
| 182 | +* fixed an important bug. |
| 183 | +* from the comment history, it looks like the minor restricted regressions were anticipated. |
| 184 | +* marking as triaged. |
0 commit comments