|
| 1 | +# 2022-08-02 Triage Log |
| 2 | + |
| 3 | +A good week! We had one regression from [#99123](https://github.com/rust-lang/rust/pull/99123) |
| 4 | +that could use further study, but we had a huge swath of improvements. The downward trend of the |
| 5 | +[performance graph summary](https://perf.rust-lang.org/?start=2022-07-04&end=2022-08-03&kind=percentfromfirst&stat=instructions%3Au) |
| 6 | +is striking. Perhaps best of all: Only *one* rollup PR impacted performance this week which makes |
| 7 | +things so much easier to evaluate! Great work everyone! |
| 8 | + |
| 9 | +Triage done by **@pnkfelix**. |
| 10 | +Revision range: [50166d5e..792bc5a0](https://perf.rust-lang.org/?start=50166d5e5e82ca795306824decbe4ffabcc23d3d&end=792bc5a0102d0973d42183a2b267850bb905236f&absolute=false&stat=instructions%3Au) |
| 11 | + |
| 12 | +**Summary**: |
| 13 | + |
| 14 | +| | mean | max | count | |
| 15 | +|:----------:|:----:|:---:|:-----:| |
| 16 | +| Regressions 😿 <br /> (primary) | 0.4% | 0.7% | 5 | |
| 17 | +| Regressions 😿 <br /> (secondary) | 0.6% | 1.1% | 11 | |
| 18 | +| Improvements 🎉 <br /> (primary) | -0.8% | -3.3% | 140 | |
| 19 | +| Improvements 🎉 <br /> (secondary) | -0.9% | -11.0% | 95 | |
| 20 | +| All 😿🎉 (primary) | -0.8% | -3.3% | 145 | |
| 21 | + |
| 22 | + |
| 23 | +1 Regressions, 4 Improvements, 4 Mixed; 1 of them in rollups |
| 24 | +44 artifact comparisons made in total |
| 25 | + |
| 26 | +#### Regressions |
| 27 | + |
| 28 | +`proc_macro`: use crossbeam channels for the `proc_macro` cross-thread bridge [#99123](https://github.com/rust-lang/rust/pull/99123) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=8f68c43ca6a6381a4d73f887f112e9fb95769905&end=bd84c73ffe0a54ce2d77c92948a26ffa8fec04a3&stat=instructions:u) |
| 29 | + |
| 30 | +| | mean | max | count | |
| 31 | +|:----------:|:----:|:---:|:-----:| |
| 32 | +| Regressions 😿 <br /> (primary) | 0.9% | 1.4% | 11 | |
| 33 | +| Regressions 😿 <br /> (secondary) | N/A | N/A | 0 | |
| 34 | +| Improvements 🎉 <br /> (primary) | N/A | N/A | 0 | |
| 35 | +| Improvements 🎉 <br /> (secondary) | N/A | N/A | 0 | |
| 36 | +| All 😿🎉 (primary) | 0.9% | 1.4% | 11 | |
| 37 | + |
| 38 | +* all 11 regressions are to various profiles+scenarios for html5ever |
| 39 | +* @nnethercote and @eddyb are discussing the regression to html5ever on the PR (#99123) |
| 40 | +* not marking as triaged, not yet at least; lets try and see if eddyb's suggested mitigation actually helps here |
| 41 | + |
| 42 | +#### Improvements |
| 43 | + |
| 44 | +Rollup of 7 pull requests [#99816](https://github.com/rust-lang/rust/pull/99816) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=da5b546d2e563747b16a16dae83bacf49aa0bf3b&end=2643b16468fda787470340890212591d8bc832b7&stat=instructions:u) |
| 45 | + |
| 46 | +| | mean | max | count | |
| 47 | +|:----------:|:----:|:---:|:-----:| |
| 48 | +| Regressions 😿 <br /> (primary) | N/A | N/A | 0 | |
| 49 | +| Regressions 😿 <br /> (secondary) | 1.0% | 1.0% | 1 | |
| 50 | +| Improvements 🎉 <br /> (primary) | -0.2% | -0.2% | 1 | |
| 51 | +| Improvements 🎉 <br /> (secondary) | -0.5% | -1.6% | 10 | |
| 52 | +| All 😿🎉 (primary) | -0.2% | -0.2% | 1 | |
| 53 | + |
| 54 | +* primary improvement was `hyper check incr-unchanged`; secondaries were `coercions debug full`, and 9 variations on `extern`. Secondary regression was `deep-vector opt incr-patched: println`. |
| 55 | + |
| 56 | +anonymize all bound vars, not just regions [#99730](https://github.com/rust-lang/rust/pull/99730) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3924dac7bb29bc8eb348059c901e8f912399c857&end=211637d0802a1c17d41b414e091e9a8691b26068&stat=instructions:u) |
| 57 | + |
| 58 | +| | mean | max | count | |
| 59 | +|:----------:|:----:|:---:|:-----:| |
| 60 | +| Regressions 😿 <br /> (primary) | N/A | N/A | 0 | |
| 61 | +| Regressions 😿 <br /> (secondary) | N/A | N/A | 0 | |
| 62 | +| Improvements 🎉 <br /> (primary) | -0.4% | -0.6% | 56 | |
| 63 | +| Improvements 🎉 <br /> (secondary) | -0.4% | -0.9% | 36 | |
| 64 | +| All 😿🎉 (primary) | -0.4% | -0.6% | 56 | |
| 65 | + |
| 66 | +* As is, this PR registered compilation time improvements |
| 67 | +* However, @simulacrum noted that it was associated with a nearly 2% regression to *bootstrap times*. |
| 68 | + |
| 69 | + |
| 70 | +Limit symbols exported from proc macros [#99944](https://github.com/rust-lang/rust/pull/99944) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=6423ab3a755fed97f75b2361849155d4e996d02f&end=25bb1c13bd472b75ceebee3b8dcf4dcbc431a8be&stat=instructions:u) |
| 71 | + |
| 72 | +| | mean | max | count | |
| 73 | +|:----------:|:----:|:---:|:-----:| |
| 74 | +| Regressions 😿 <br /> (primary) | N/A | N/A | 0 | |
| 75 | +| Regressions 😿 <br /> (secondary) | N/A | N/A | 0 | |
| 76 | +| Improvements 🎉 <br /> (primary) | -0.6% | -2.9% | 41 | |
| 77 | +| Improvements 🎉 <br /> (secondary) | -2.4% | -10.7% | 11 | |
| 78 | +| All 😿🎉 (primary) | -0.6% | -2.9% | 41 | |
| 79 | + |
| 80 | +* wow, this was a big win! serde_derive incr-unchanged builds up to 3% faster; ripgrep check is up to 1.75% faster, hyper and webrender check 1% faster. |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | +Lexer improvements [#99884](https://github.com/rust-lang/rust/pull/99884) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1f5d8d49eb6111931091f700d07518cd2b80bc18&end=dcb444af0a417766dde9b7b8f537fa1ba1568daf&stat=instructions:u) |
| 85 | + |
| 86 | +| | mean | max | count | |
| 87 | +|:----------:|:----:|:---:|:-----:| |
| 88 | +| Regressions 😿 <br /> (primary) | N/A | N/A | 0 | |
| 89 | +| Regressions 😿 <br /> (secondary) | N/A | N/A | 0 | |
| 90 | +| Improvements 🎉 <br /> (primary) | -0.3% | -0.6% | 42 | |
| 91 | +| Improvements 🎉 <br /> (secondary) | -0.5% | -1.2% | 48 | |
| 92 | +| All 😿🎉 (primary) | -0.3% | -0.6% | 42 | |
| 93 | + |
| 94 | +* This was a very *broad* win, where a huge number of benchmarks all improved by a relatively small amount. |
| 95 | +* I'm impressed by the [inventiveness shown during PR review](https://github.com/rust-lang/rust/pull/99884#pullrequestreview-1055325175). |
| 96 | + |
| 97 | +#### Mixed |
| 98 | + |
| 99 | +Remove remaining uses of box syntax from librustdoc [#99577](https://github.com/rust-lang/rust/pull/99577) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5dda74a48cd50de10539478c1e0b6699bfdab665&end=3924dac7bb29bc8eb348059c901e8f912399c857&stat=instructions:u) |
| 100 | + |
| 101 | +| | mean | max | count | |
| 102 | +|:----------:|:----:|:---:|:-----:| |
| 103 | +| Regressions 😿 <br /> (primary) | N/A | N/A | 0 | |
| 104 | +| Regressions 😿 <br /> (secondary) | 0.3% | 0.3% | 4 | |
| 105 | +| Improvements 🎉 <br /> (primary) | -0.3% | -0.3% | 2 | |
| 106 | +| Improvements 🎉 <br /> (secondary) | N/A | N/A | 0 | |
| 107 | +| All 😿🎉 (primary) | -0.3% | -0.3% | 2 | |
| 108 | + |
| 109 | +* as you might expect, the limited number of performance changes here were to doc benchmarks (specifically serde and libc doc). |
| 110 | + |
| 111 | +Remove `TreeAndSpacing`. [#99887](https://github.com/rust-lang/rust/pull/99887) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c907b6f7e0f89c3c4146b585961d2ddcf173584b&end=1202bbaf48a0a919a2e0cfd8b7dce97e8fc3030d&stat=instructions:u) |
| 112 | + |
| 113 | +| | mean | max | count | |
| 114 | +|:----------:|:----:|:---:|:-----:| |
| 115 | +| Regressions 😿 <br /> (primary) | 0.3% | 0.3% | 1 | |
| 116 | +| Regressions 😿 <br /> (secondary) | 0.2% | 0.2% | 1 | |
| 117 | +| Improvements 🎉 <br /> (primary) | -0.3% | -0.4% | 5 | |
| 118 | +| Improvements 🎉 <br /> (secondary) | -0.4% | -0.9% | 16 | |
| 119 | +| All 😿🎉 (primary) | -0.2% | -0.4% | 6 | |
| 120 | + |
| 121 | +* already triaged by nnethercote: "There's a single regressing result and 25 improved results. The changes are all very small. This is fine" |
| 122 | + |
| 123 | +Thin `AssocItem` [#95884](https://github.com/rust-lang/rust/pull/95884) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fe3342816a282949f014caa05ea2e669ff9d3d3c&end=21de280cccb4eb02ead6bf0af40e2355a9136d6f&stat=instructions:u) |
| 124 | + |
| 125 | +| | mean | max | count | |
| 126 | +|:----------:|:----:|:---:|:-----:| |
| 127 | +| Regressions 😿 <br /> (primary) | 0.3% | 0.4% | 16 | |
| 128 | +| Regressions 😿 <br /> (secondary) | 0.5% | 0.6% | 9 | |
| 129 | +| Improvements 🎉 <br /> (primary) | -0.3% | -0.4% | 7 | |
| 130 | +| Improvements 🎉 <br /> (secondary) | -0.4% | -0.5% | 8 | |
| 131 | +| All 😿🎉 (primary) | 0.1% | 0.4% | 23 | |
| 132 | + |
| 133 | +* already triaged by nnethercote: "This looks perf-neutral, with the improvements roughly the same size as the regressions." |
| 134 | + |
| 135 | +Remove `fn backtrace` and replace with usages of provider API [#99431](https://github.com/rust-lang/rust/pull/99431) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9d5cd21a5d4d5325b1f1c9903d000d19e3703e2a&end=9538d2d0f1c708affa36ef8917729efec2e5e0ed&stat=instructions:u) |
| 136 | + |
| 137 | +| | mean | max | count | |
| 138 | +|:----------:|:----:|:---:|:-----:| |
| 139 | +| Regressions 😿 <br /> (primary) | N/A | N/A | 0 | |
| 140 | +| Regressions 😿 <br /> (secondary) | 1.5% | 1.5% | 2 | |
| 141 | +| Improvements 🎉 <br /> (primary) | -0.9% | -1.4% | 2 | |
| 142 | +| Improvements 🎉 <br /> (secondary) | N/A | N/A | 0 | |
| 143 | +| All 😿🎉 (primary) | -0.9% | -1.4% | 2 | |
| 144 | + |
| 145 | +* the improvements are to building primary benchmark cargo opt in incr-patch: println and incr-full, by -1.38% and -0.42% respectively . The regression was to the externs incr-full in debug and opt profiles, both by 1.52%. |
| 146 | +* this is entirely acceptable (and wasn't marked as a performance regression by the bot in the first place) |
| 147 | + |
| 148 | +#### Untriaged Pull Requests |
| 149 | + |
| 150 | +- [#99792 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/99792) |
| 151 | +- [#99520 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/99520) |
| 152 | +- [#99251 Upgrade indexmap and thorin-dwp to use hashbrown 0.12](https://github.com/rust-lang/rust/pull/99251) |
| 153 | +- [#99231 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/99231) |
| 154 | +- [#99210 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/99210) |
| 155 | +- [#99126 remove allow(rustc::potential_query_instability) in rustc_span](https://github.com/rust-lang/rust/pull/99126) |
| 156 | +- [#99123 proc_macro: use crossbeam channels for the proc_macro cross-thread bridge](https://github.com/rust-lang/rust/pull/99123) |
| 157 | +- [#99047 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/99047) |
| 158 | +- [#99014 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/99014) |
| 159 | +- [#98987 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/98987) |
| 160 | +- [#98957 don't allow ZST in ScalarInt ](https://github.com/rust-lang/rust/pull/98957) |
| 161 | +- [#98904 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/98904) |
| 162 | +- [#98874 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/98874) |
| 163 | +- [#98612 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/98612) |
| 164 | +- [#98591 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/98591) |
| 165 | +- [#98178 btree: avoid forcing the allocator to be a reference](https://github.com/rust-lang/rust/pull/98178) |
| 166 | +- [#98145 Pull Derefer before ElaborateDrops](https://github.com/rust-lang/rust/pull/98145) |
| 167 | +- [#97786 Account for `-Z simulate-remapped-rust-src-base` when resolving remapped paths](https://github.com/rust-lang/rust/pull/97786) |
| 168 | +- [#97019 Transition to valtrees pt1](https://github.com/rust-lang/rust/pull/97019) |
| 169 | +- [#97004 Proc macro tweaks](https://github.com/rust-lang/rust/pull/97004) |
| 170 | +- [#96883 Add EarlyBinder](https://github.com/rust-lang/rust/pull/96883) |
| 171 | +- [#96825 Retire `ItemLikeVisitor` trait](https://github.com/rust-lang/rust/pull/96825) |
| 172 | +- [#96010 Implement `core::ptr::Unique` on top of `NonNull`](https://github.com/rust-lang/rust/pull/96010) |
| 173 | +- [#95990 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/95990) |
| 174 | +- [#95956 Support unstable moves via stable in unstable items](https://github.com/rust-lang/rust/pull/95956) |
| 175 | +- [#95899 rustc_metadata: Do not encode unnecessary module children](https://github.com/rust-lang/rust/pull/95899) |
| 176 | +- [#95893 Respect -Z verify-llvm-ir and other flags that add extra passes when combined with -C no-prepopulate-passes in the new LLVM Pass Manager.](https://github.com/rust-lang/rust/pull/95893) |
| 177 | +- [#95835 Rollup of 8 pull requests](https://github.com/rust-lang/rust/pull/95835) |
| 178 | +- [#95794 `parse_tt`: a few more tweaks](https://github.com/rust-lang/rust/pull/95794) |
| 179 | +- [#95742 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/95742) |
0 commit comments