|
| 1 | +# 2022-08-16 Triage Log |
| 2 | + |
| 3 | +A fairly quiet week for performance, with the exception of the LLVM 15 upgrade |
| 4 | +which resulted in many changes, mostly to the positive. |
| 5 | + |
| 6 | +Triage done by **@simulacrum**. |
| 7 | +Revision range: [cc4dd6fc9f1a5c798df269933c7e442b79661a86..14a459bf37bc19476d43e0045d078121c12d3fef](https://perf.rust-lang.org/?start=cc4dd6fc9f1a5c798df269933c7e442b79661a86&end=14a459bf37bc19476d43e0045d078121c12d3fef&absolute=false&stat=instructions%3Au) |
| 8 | + |
| 9 | +**Summary**: |
| 10 | + |
| 11 | +| (instructions:u) | mean | max | count | |
| 12 | +|:----------------:|:----:|:---:|:-----:| |
| 13 | +| Regressions ❌ <br /> (primary) | 0.7% | 7.7% | 62 | |
| 14 | +| Regressions ❌ <br /> (secondary) | 1.3% | 5.0% | 51 | |
| 15 | +| Improvements ✅ <br /> (primary) | -1.8% | -6.9% | 93 | |
| 16 | +| Improvements ✅ <br /> (secondary) | -2.4% | -22.0% | 128 | |
| 17 | +| All ❌✅ (primary) | -0.8% | 7.7% | 155 | |
| 18 | + |
| 19 | + |
| 20 | +2 Regressions, 4 Improvements, 2 Mixed; 1 of them in rollups |
| 21 | +38 artifact comparisons made in total |
| 22 | + |
| 23 | +#### Regressions |
| 24 | + |
| 25 | +consider unnormalized types for implied bounds [#99217](https://github.com/rust-lang/rust/pull/99217) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6d3f1beae1720055e5a30f4dbe7a9e7fb810c65e&end=63e4312e6bd50ec9859c363402209809fb8155d5&stat=instructions:u) |
| 26 | + |
| 27 | +| (instructions:u) | mean | max | count | |
| 28 | +|:----------------:|:----:|:---:|:-----:| |
| 29 | +| Regressions ❌ <br /> (primary) | 0.7% | 1.9% | 37 | |
| 30 | +| Regressions ❌ <br /> (secondary) | 2.0% | 2.4% | 11 | |
| 31 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 32 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 33 | +| All ❌✅ (primary) | 0.7% | 1.9% | 37 | |
| 34 | + |
| 35 | +This regression is caused by a soundness fix. |
| 36 | +[#99725](https://github.com/rust-lang/rust/pull/99725) recovered a small amount |
| 37 | +of the lost performance here. |
| 38 | + |
| 39 | +rustdoc: Merge source code pages HTML elements together [#100429](https://github.com/rust-lang/rust/pull/100429) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4c5665583815a0f0f3e22516441efb43ea6dede2&end=801821d1560f84e4716fcbd9244ec959320a13d5&stat=instructions:u) |
| 40 | + |
| 41 | +| (instructions:u) | mean | max | count | |
| 42 | +|:----------------:|:----:|:---:|:-----:| |
| 43 | +| Regressions ❌ <br /> (primary) | 0.6% | 1.4% | 12 | |
| 44 | +| Regressions ❌ <br /> (secondary) | 1.8% | 3.1% | 8 | |
| 45 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 46 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 47 | +| All ❌✅ (primary) | 0.6% | 1.4% | 12 | |
| 48 | + |
| 49 | +The regressions are limited to doc benchmarks and the underlying change reduces |
| 50 | +the number of DOM elements generated by ~30% across a few samples (see PR |
| 51 | +description for details). Those sizes aren't measured by perf.rust-lang.org |
| 52 | +today, so there's no reflection of that here, but the size improvement is a |
| 53 | +welcome one. |
| 54 | + |
| 55 | +#### Improvements |
| 56 | + |
| 57 | +Reoptimize layout array [#99174](https://github.com/rust-lang/rust/pull/99174) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=29e4a9ee0253cd39e552a77f51f11f9a5f1c41e6&end=908fc5b26d15fc96d630ab921e70b2db77a532c4&stat=instructions:u) |
| 58 | + |
| 59 | +| (instructions:u) | mean | max | count | |
| 60 | +|:----------------:|:----:|:---:|:-----:| |
| 61 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 62 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 63 | +| Improvements ✅ <br /> (primary) | -0.4% | -0.8% | 10 | |
| 64 | +| Improvements ✅ <br /> (secondary) | -0.8% | -1.2% | 5 | |
| 65 | +| All ❌✅ (primary) | -0.4% | -0.8% | 10 | |
| 66 | + |
| 67 | + |
| 68 | +Remove manual implementations of HashStable for hir::Expr and hir::Ty. [#100237](https://github.com/rust-lang/rust/pull/100237) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3694b7d307b7516757651952b30bb97b6ba5c049&end=ef9810a3e2a9a16e79176cb0d3466ea82d239942&stat=instructions:u) |
| 69 | + |
| 70 | +| (instructions:u) | mean | max | count | |
| 71 | +|:----------------:|:----:|:---:|:-----:| |
| 72 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 73 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 74 | +| Improvements ✅ <br /> (primary) | -0.2% | -0.2% | 3 | |
| 75 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 76 | +| All ❌✅ (primary) | -0.2% | -0.2% | 3 | |
| 77 | + |
| 78 | +Possibly spurious, but leaving in the report -- bitmaps-3.1.0 check typically does not [see] this much impact on a run to run basis so it's probably at least partially real. |
| 79 | + |
| 80 | +[see]: https://perf.rust-lang.org/index.html?start=2022-07-01&end=ef9810a3e2a9a16e79176cb0d3466ea82d239942&benchmark=bitmaps-3.1.0&profile=check&scenario=incr-unchanged&stat=instructions:u&kind=percentfromfirst |
| 81 | + |
| 82 | + |
| 83 | +Shrink `ast::Attribute`. [#100441](https://github.com/rust-lang/rust/pull/100441) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8556e6620e4866526b3cea767ad8c20ae877a569&end=14a459bf37bc19476d43e0045d078121c12d3fef&stat=instructions:u) |
| 84 | + |
| 85 | +| (instructions:u) | mean | max | count | |
| 86 | +|:----------------:|:----:|:---:|:-----:| |
| 87 | +| Regressions ❌ <br /> (primary) | 0.6% | 0.6% | 1 | |
| 88 | +| Regressions ❌ <br /> (secondary) | 0.2% | 0.2% | 1 | |
| 89 | +| Improvements ✅ <br /> (primary) | -0.6% | -1.4% | 22 | |
| 90 | +| Improvements ✅ <br /> (secondary) | -1.0% | -1.5% | 23 | |
| 91 | +| All ❌✅ (primary) | -0.5% | -1.4% | 23 | |
| 92 | + |
| 93 | +Mostly an improvement in doc benchmarks, though a few check benchmarks improved |
| 94 | +as well. An excellent win for memory usage, with up to 5.8% wins on helloworld. |
| 95 | + |
| 96 | +passes: load `defined_lib_features` query less [#100328](https://github.com/rust-lang/rust/pull/100328) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=569788e47ee3595c9c6f0e332844d982b3e991c2&end=0068b8bf4b150b506ef0871be4e8652fd4308f84&stat=instructions:u) |
| 97 | + |
| 98 | +| (instructions:u) | mean | max | count | |
| 99 | +|:----------------:|:----:|:---:|:-----:| |
| 100 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 101 | +| Regressions ❌ <br /> (secondary) | 0.8% | 1.5% | 3 | |
| 102 | +| Improvements ✅ <br /> (primary) | -0.4% | -0.4% | 1 | |
| 103 | +| Improvements ✅ <br /> (secondary) | -1.2% | -1.8% | 8 | |
| 104 | +| All ❌✅ (primary) | -0.4% | -0.4% | 1 | |
| 105 | + |
| 106 | +The regressions here appear to be spurious, with performance recovering on the |
| 107 | +next commit. Otherwise, this is a good improvement. |
| 108 | + |
| 109 | +#### Mixed |
| 110 | + |
| 111 | +Rollup of 13 pull requests [#100426](https://github.com/rust-lang/rust/pull/100426) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=20ffea6938b5839c390252e07940b99e3b6a889a&end=2ed0f29168f5bc116e747152be600519b5d78bfd&stat=instructions:u) |
| 112 | + |
| 113 | +| (instructions:u) | mean | max | count | |
| 114 | +|:----------------:|:----:|:---:|:-----:| |
| 115 | +| Regressions ❌ <br /> (primary) | 0.3% | 0.4% | 4 | |
| 116 | +| Regressions ❌ <br /> (secondary) | 0.5% | 0.7% | 5 | |
| 117 | +| Improvements ✅ <br /> (primary) | -0.9% | -0.9% | 1 | |
| 118 | +| Improvements ✅ <br /> (secondary) | -1.8% | -1.8% | 1 | |
| 119 | +| All ❌✅ (primary) | 0.0% | -0.9% | 5 | |
| 120 | + |
| 121 | +Small-ish regression narrowed down to |
| 122 | +[#99337](https://github.com/rust-lang/rust/pull/99337), some active work in |
| 123 | +this area of rustdoc is likely to help here soon. |
| 124 | + |
| 125 | +Update to LLVM 15 [#99464](https://github.com/rust-lang/rust/pull/99464) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b998821e4c51c44a9ebee395c91323c374236bbb&end=e2b52ff73edc8b0b7c74bc28760d618187731fe8&stat=instructions:u) |
| 126 | + |
| 127 | +| (instructions:u) | mean | max | count | |
| 128 | +|:----------------:|:----:|:---:|:-----:| |
| 129 | +| Regressions ❌ <br /> (primary) | 0.8% | 7.5% | 40 | |
| 130 | +| Regressions ❌ <br /> (secondary) | 1.2% | 4.4% | 29 | |
| 131 | +| Improvements ✅ <br /> (primary) | -1.5% | -6.0% | 100 | |
| 132 | +| Improvements ✅ <br /> (secondary) | -2.6% | -21.6% | 94 | |
| 133 | +| All ❌✅ (primary) | -0.9% | 7.5% | 140 | |
| 134 | + |
| 135 | +Overall the benefits here outweigh the negatives, with a number of good |
| 136 | +improvements. LLVM upgrades are something we're going to keep rolling forward |
| 137 | +on regardless. For wall time metrics the improvement here looks particularly |
| 138 | +nice, with bootstrap times improved by ~4%, shaving 30 seconds of the total |
| 139 | +time measured by perf. |
| 140 | + |
0 commit comments