|
| 1 | +# 2023-02-14 Triage Log |
| 2 | + |
| 3 | +Overall a good week for performance with 77 real world crates benchmarks showing an average of nearly 1% performance improvement. Unfortunately, the largest regressions are not yet fully understood and require additional investigation. Of particular interest were some large improvements in doc builds due to storing additional metadata. However, this change might cause some crates to compile slightly slower in incremental check builds, but this is still being investigated. |
| 4 | + |
| 5 | +Triage done by **@rylev**. |
| 6 | +Revision range: [e4dd9edb..9bb6e60](https://perf.rust-lang.org/?start=e4dd9edb76a34ecbca539967f9662b8c0cc9c7fb&end=9bb6e60d1f1360234aae90c97964c0fa5524f141&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +**Summary**: |
| 9 | + |
| 10 | +| (instructions:u) | mean | range | count | |
| 11 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 12 | +| Regressions ❌ <br /> (primary) | 1.4% | [0.4%, 11.0%] | 13 | |
| 13 | +| Regressions ❌ <br /> (secondary) | 0.8% | [0.2%, 1.6%] | 4 | |
| 14 | +| Improvements ✅ <br /> (primary) | -1.4% | [-7.9%, -0.3%] | 64 | |
| 15 | +| Improvements ✅ <br /> (secondary) | -2.1% | [-5.6%, -0.3%] | 73 | |
| 16 | +| All ❌✅ (primary) | -0.9% | [-7.9%, 11.0%] | 77 | |
| 17 | + |
| 18 | + |
| 19 | +3 Regressions, 4 Improvements, 9 Mixed; ??? of them in rollups |
| 20 | +46 artifact comparisons made in total |
| 21 | + |
| 22 | +#### Regressions |
| 23 | + |
| 24 | +Rollup of 6 pull requests [#107870](https://github.com/rust-lang/rust/pull/107870) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a6975734632c4771edd45ef10e7d4753541d0f3a&end=9b8dbd558c1c4b25c55d987e22baba312ae980ad&stat=instructions:u) |
| 25 | + |
| 26 | +| (instructions:u) | mean | range | count | |
| 27 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 28 | +| Regressions ❌ <br /> (primary) | 0.7% | [0.5%, 1.0%] | 7 | |
| 29 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 30 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 31 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 32 | +| All ❌✅ (primary) | 0.7% | [0.5%, 1.0%] | 7 | |
| 33 | + |
| 34 | + |
| 35 | +Implement `deferred_projection_equality` for erica solver [#107507](https://github.com/rust-lang/rust/pull/107507) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5a8dfd933a70cc47e44502a20fd67dfaec6555d5&end=1623ab0246deebec4fe32dc525d20bf8a88096f2&stat=instructions:u) |
| 36 | + |
| 37 | +| (instructions:u) | mean | range | count | |
| 38 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 39 | +| Regressions ❌ <br /> (primary) | 0.8% | [0.7%, 1.0%] | 6 | |
| 40 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 41 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 42 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 43 | +| All ❌✅ (primary) | 0.8% | [0.7%, 1.0%] | 6 | |
| 44 | + |
| 45 | + |
| 46 | +rustdoc: Remove cache for preprocessed markdown links [#107933](https://github.com/rust-lang/rust/pull/107933) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=adb4bfd25d3c1190b0e7433ef945221d8aeea427&end=00cf19a75a7055171a4ffc8cc557ff63953c9754&stat=instructions:u) |
| 47 | + |
| 48 | +| (instructions:u) | mean | range | count | |
| 49 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 50 | +| Regressions ❌ <br /> (primary) | 1.2% | [1.2%, 1.2%] | 1 | |
| 51 | +| Regressions ❌ <br /> (secondary) | 3.9% | [3.9%, 3.9%] | 1 | |
| 52 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 53 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 54 | +| All ❌✅ (primary) | 1.2% | [1.2%, 1.2%] | 1 | |
| 55 | +- Deemed an [acceptable trade off](https://github.com/rust-lang/rust/pull/107933#issuecomment-1426963682) for the simplification it brings. |
| 56 | + |
| 57 | + |
| 58 | +#### Improvements |
| 59 | + |
| 60 | +ReErased regions are local [#107688](https://github.com/rust-lang/rust/pull/107688) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3f059f60467419823e2a63d6d20f414829040f2f&end=b082e80e20475b1ec5b0bd0dd1dac3e6759c8022&stat=instructions:u) |
| 61 | + |
| 62 | +| (instructions:u) | mean | range | count | |
| 63 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 64 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 65 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 66 | +| Improvements ✅ <br /> (primary) | -0.8% | [-1.2%, -0.3%] | 8 | |
| 67 | +| Improvements ✅ <br /> (secondary) | -1.5% | [-2.6%, -0.4%] | 6 | |
| 68 | +| All ❌✅ (primary) | -0.8% | [-1.2%, -0.3%] | 8 | |
| 69 | + |
| 70 | + |
| 71 | +Rollup of 8 pull requests [#107811](https://github.com/rust-lang/rust/pull/107811) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9433ba63942a736f068baacf19e5cffaff6dccc9&end=ef934d9b632b8ac00276558824664c104b92b5f0&stat=instructions:u) |
| 72 | + |
| 73 | +| (instructions:u) | mean | range | count | |
| 74 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 75 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.6%, 0.6%] | 1 | |
| 76 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 77 | +| Improvements ✅ <br /> (primary) | -0.8% | [-1.4%, -0.2%] | 7 | |
| 78 | +| Improvements ✅ <br /> (secondary) | -3.4% | [-4.2%, -1.6%] | 7 | |
| 79 | +| All ❌✅ (primary) | -0.6% | [-1.4%, 0.6%] | 8 | |
| 80 | + |
| 81 | + |
| 82 | +Rollup of 9 pull requests [#107828](https://github.com/rust-lang/rust/pull/107828) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=575d424c94e0d4feea8cf4fcf04d47b83f28eaef&end=e7acd078f443156b95cee11759a735db1cfc796e&stat=instructions:u) |
| 83 | + |
| 84 | +| (instructions:u) | mean | range | count | |
| 85 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 86 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 87 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 88 | +| Improvements ✅ <br /> (primary) | -1.3% | [-1.4%, -1.2%] | 2 | |
| 89 | +| Improvements ✅ <br /> (secondary) | -3.6% | [-4.1%, -3.2%] | 6 | |
| 90 | +| All ❌✅ (primary) | -1.3% | [-1.4%, -1.2%] | 2 | |
| 91 | + |
| 92 | + |
| 93 | +Reduce interning [#107869](https://github.com/rust-lang/rust/pull/107869) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=59083c57d450d5be49db460fa395e472c09ff393&end=7740f9a571b3c6510607b17b29c81eeb24a7c79a&stat=instructions:u) |
| 94 | + |
| 95 | +| (instructions:u) | mean | range | count | |
| 96 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 97 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 98 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 99 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 100 | +| Improvements ✅ <br /> (secondary) | -1.4% | [-2.6%, -0.4%] | 12 | |
| 101 | +| All ❌✅ (primary) | - | - | 0 | |
| 102 | + |
| 103 | + |
| 104 | +#### Mixed |
| 105 | + |
| 106 | +Rollup of 8 pull requests [#107768](https://github.com/rust-lang/rust/pull/107768) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=bd39bbb4bb92df439bf6d85470e296cc6a47ffbd&end=3f059f60467419823e2a63d6d20f414829040f2f&stat=instructions:u) |
| 107 | + |
| 108 | +| (instructions:u) | mean | range | count | |
| 109 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 110 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 111 | +| Regressions ❌ <br /> (secondary) | 1.7% | [1.7%, 1.7%] | 2 | |
| 112 | +| Improvements ✅ <br /> (primary) | -1.0% | [-1.5%, -0.4%] | 3 | |
| 113 | +| Improvements ✅ <br /> (secondary) | -3.7% | [-4.2%, -3.2%] | 6 | |
| 114 | +| All ❌✅ (primary) | -1.0% | [-1.5%, -0.4%] | 3 | |
| 115 | +- Small number of regressions in secondary benchmarks in a rollup - I think we're fine calling this triaged. |
| 116 | + |
| 117 | + |
| 118 | +Update cargo [#107778](https://github.com/rust-lang/rust/pull/107778) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b082e80e20475b1ec5b0bd0dd1dac3e6759c8022&end=7ba4e95368b2a71018cd995f5254ba3e7422954e&stat=instructions:u) |
| 119 | + |
| 120 | +| (instructions:u) | mean | range | count | |
| 121 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 122 | +| Regressions ❌ <br /> (primary) | 1.1% | [0.4%, 1.5%] | 3 | |
| 123 | +| Regressions ❌ <br /> (secondary) | 3.3% | [1.7%, 4.4%] | 8 | |
| 124 | +| Improvements ✅ <br /> (primary) | -2.4% | [-7.7%, -0.4%] | 8 | |
| 125 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 126 | +| All ❌✅ (primary) | -1.4% | [-7.7%, 1.5%] | 11 | |
| 127 | +- Most of the regressions are due to noise |
| 128 | + |
| 129 | + |
| 130 | +Optimize query_cache_hit to reduce code size of the query hot path. [#107529](https://github.com/rust-lang/rust/pull/107529) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6eb9f2dd6752f591906281d8aa5e16a8c51a8801&end=a00e24d76a9ac03b146d3bf89e2161b2466c6551&stat=instructions:u) |
| 131 | + |
| 132 | +| (instructions:u) | mean | range | count | |
| 133 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 134 | +| Regressions ❌ <br /> (primary) | 0.5% | [0.5%, 0.5%] | 1 | |
| 135 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 136 | +| Improvements ✅ <br /> (primary) | -0.3% | [-0.4%, -0.2%] | 4 | |
| 137 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 138 | +| All ❌✅ (primary) | -0.1% | [-0.4%, 0.5%] | 5 | |
| 139 | +- Regression is small |
| 140 | + |
| 141 | + |
| 142 | +Optimize `TyKind::eq`. [#107717](https://github.com/rust-lang/rust/pull/107717) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=ef934d9b632b8ac00276558824664c104b92b5f0&end=575d424c94e0d4feea8cf4fcf04d47b83f28eaef&stat=instructions:u) |
| 143 | + |
| 144 | +| (instructions:u) | mean | range | count | |
| 145 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 146 | +| Regressions ❌ <br /> (primary) | 1.1% | [1.0%, 1.2%] | 2 | |
| 147 | +| Regressions ❌ <br /> (secondary) | 3.6% | [3.3%, 4.2%] | 6 | |
| 148 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 149 | +| Improvements ✅ <br /> (secondary) | -1.5% | [-1.6%, -1.3%] | 2 | |
| 150 | +| All ❌✅ (primary) | 1.1% | [1.0%, 1.2%] | 2 | |
| 151 | +- From @nnethercote: keccak and cranelift-codegen are noisy. wg-grammar saw the expected benefit, but it's now considered non-significant, I guess it must have been a bit noisy recently as well. |
| 152 | + |
| 153 | + |
| 154 | +Resolve documentation links in rustc and store the results in metadata [#94857](https://github.com/rust-lang/rust/pull/94857) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=71f6675de1faa2a8e897a8faaa861a0157b0e355&end=5b450244876154bc1bd134694398e80c12e00b5c&stat=instructions:u) |
| 155 | + |
| 156 | +| (instructions:u) | mean | range | count | |
| 157 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 158 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.3%, 1.5%] | 28 | |
| 159 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.3%] | 1 | |
| 160 | +| Improvements ✅ <br /> (primary) | -2.4% | [-5.7%, -0.6%] | 17 | |
| 161 | +| Improvements ✅ <br /> (secondary) | -3.4% | [-5.2%, -0.6%] | 21 | |
| 162 | +| All ❌✅ (primary) | -0.6% | [-5.7%, 1.5%] | 45 | |
| 163 | +- Landed after an MCP and some analysis of the regressions which were deemed acceptable: https://github.com/rust-lang/rust/pull/94857#issuecomment-1414293572 |
| 164 | + |
| 165 | + |
| 166 | +simplify layout calculations in rawvec [#107167](https://github.com/rust-lang/rust/pull/107167) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5b450244876154bc1bd134694398e80c12e00b5c&end=8dabf5da9e0318f8c324dc224ad49dc91472c2ec&stat=instructions:u) |
| 167 | + |
| 168 | +| (instructions:u) | mean | range | count | |
| 169 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 170 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.3%, 0.3%] | 2 | |
| 171 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 172 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.7%, -0.2%] | 11 | |
| 173 | +| Improvements ✅ <br /> (secondary) | -0.6% | [-1.4%, -0.2%] | 9 | |
| 174 | +| All ❌✅ (primary) | -0.3% | [-0.7%, 0.3%] | 13 | |
| 175 | +- Improvements greatly exceed regressions here. |
| 176 | + |
| 177 | + |
| 178 | +Reverse Timsort scan direction [#107191](https://github.com/rust-lang/rust/pull/107191) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7740f9a571b3c6510607b17b29c81eeb24a7c79a&end=96834f0231277e8feb8dcf185b2af082ad2e39f6&stat=instructions:u) |
| 179 | + |
| 180 | +| (instructions:u) | mean | range | count | |
| 181 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 182 | +| Regressions ❌ <br /> (primary) | 0.6% | [0.6%, 0.6%] | 1 | |
| 183 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 2 | |
| 184 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 2 | |
| 185 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 186 | +| All ❌✅ (primary) | -0.1% | [-0.4%, 0.6%] | 3 | |
| 187 | +- Regressions are small enough that I think we don't need to investigate this closely. |
| 188 | + |
| 189 | + |
| 190 | +Improve the `array::map` codegen [#107634](https://github.com/rust-lang/rust/pull/107634) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=20081880ad2a98bbc8c8293f96c5b284d1584d86&end=2d91939bb7130a8e6c092a290b7d37f654e3c23c&stat=instructions:u) |
| 191 | + |
| 192 | +| (instructions:u) | mean | range | count | |
| 193 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 194 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 195 | +| Regressions ❌ <br /> (secondary) | 0.3% | [0.3%, 0.4%] | 6 | |
| 196 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 197 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.2%] | 4 | |
| 198 | +| All ❌✅ (primary) | - | - | 0 | |
| 199 | +Perf is a wash |
| 200 | + |
| 201 | + |
| 202 | +rustc/rustdoc: Perform name resolver cleanups enabled by #94857 [#107765](https://github.com/rust-lang/rust/pull/107765) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c3c6d73b04a718aceabc314bf231a20c90ccd601&end=e9ab7872fd77861e3d182ea85a82c4649c5bb3f8&stat=instructions:u) |
| 203 | + |
| 204 | +| (instructions:u) | mean | range | count | |
| 205 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 206 | +| Regressions ❌ <br /> (primary) | 13.4% | [13.4%, 13.4%] | 1 | |
| 207 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 208 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.4%, -0.4%] | 3 | |
| 209 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | |
| 210 | +| All ❌✅ (primary) | 3.1% | [-0.4%, 13.4%] | 4 | |
| 211 | +- Being investigated by @petrochenkov |
| 212 | + |
0 commit comments