|
| 1 | +# 2025-03-25 Triage Log |
| 2 | + |
| 3 | +A nearly noise-free week, which is exciting, with a number of fairly large |
| 4 | +improvements landing for a cumulative average speed up 0.5%, possibly larger if |
| 5 | +we ignore the likely to be fixed or reverted regressions from |
| 6 | +[#138674](https://github.com/rust-lang/rust/pull/138674). |
| 7 | + |
| 8 | +Triage done by **@simulacrum**. |
| 9 | +Revision range: [493c38ba..4510e86a](https://perf.rust-lang.org/?start=493c38ba371929579fe136df26eccd9516347c7a&end=4510e86a41388733675465a8647d4235f3bf2023&absolute=false&stat=instructions%3Au) |
| 10 | + |
| 11 | +**Summary**: |
| 12 | + |
| 13 | +| (instructions:u) | mean | range | count | |
| 14 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 15 | +| Regressions ❌ <br /> (primary) | 3.4% | [0.2%, 13.5%] | 17 | |
| 16 | +| Regressions ❌ <br /> (secondary) | 2.2% | [0.2%, 6.9%] | 38 | |
| 17 | +| Improvements ✅ <br /> (primary) | -1.0% | [-4.9%, -0.1%] | 135 | |
| 18 | +| Improvements ✅ <br /> (secondary) | -1.4% | [-4.3%, -0.2%] | 118 | |
| 19 | +| All ❌✅ (primary) | -0.5% | [-4.9%, 13.5%] | 152 | |
| 20 | + |
| 21 | + |
| 22 | +3 Regressions, 4 Improvements, 2 Mixed; 3 of them in rollups |
| 23 | +35 artifact comparisons made in total |
| 24 | + |
| 25 | +#### Regressions |
| 26 | + |
| 27 | +Rollup of 10 pull requests [#138693](https://github.com/rust-lang/rust/pull/138693) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c4b38a596767c9c6275c937cf3a2d4b9612b4875&end=a7fc463dd8fbeca800d4b3efc501069502cffe64&stat=instructions:u) |
| 28 | + |
| 29 | +| (instructions:u) | mean | range | count | |
| 30 | +|:----------------------------------:|:----:|:-------------:|:-----:| |
| 31 | +| Regressions ❌ <br /> (primary) | 6.8% | [0.5%, 14.7%] | 10 | |
| 32 | +| Regressions ❌ <br /> (secondary) | 3.2% | [0.2%, 9.5%] | 32 | |
| 33 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 34 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 35 | +| All ❌✅ (primary) | 6.8% | [0.5%, 14.7%] | 10 | |
| 36 | + |
| 37 | +Significant regression in query methods due to |
| 38 | +https://github.com/rust-lang/rust/pull/138674, @oli-obk is bisecting which of |
| 39 | +the changes actually caused it (it should have been a no-op PR). |
| 40 | + |
| 41 | +expand: Leave traces when expanding `cfg_attr` attributes [#138515](https://github.com/rust-lang/rust/pull/138515) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=d8e44b722a93e55cbc9a8188dfbfe3faf1226096&end=78948ac259253ce89effca1e8bb64d16f4684aa4&stat=instructions:u) |
| 42 | + |
| 43 | +| (instructions:u) | mean | range | count | |
| 44 | +|:----------------------------------:|:----:|:------------:|:-----:| |
| 45 | +| Regressions ❌ <br /> (primary) | 0.4% | [0.1%, 1.8%] | 29 | |
| 46 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 47 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 48 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 49 | +| All ❌✅ (primary) | 0.4% | [0.1%, 1.8%] | 29 | |
| 50 | + |
| 51 | +Slight regressions are expected as we're preserving more information for later |
| 52 | +in the compiler (see comment in https://github.com/rust-lang/rust/pull/138515#issuecomment-2726426176). |
| 53 | + |
| 54 | +Only use the new node hashmap for anonymous nodes [#138629](https://github.com/rust-lang/rust/pull/138629) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=90f5eab952728ac6edcf529a171f7de5c25e5d49&end=4510e86a41388733675465a8647d4235f3bf2023&stat=instructions:u) |
| 55 | + |
| 56 | +| (instructions:u) | mean | range | count | |
| 57 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 58 | +| Regressions ❌ <br /> (primary) | 0.3% | [0.1%, 0.5%] | 31 | |
| 59 | +| Regressions ❌ <br /> (secondary) | 0.4% | [0.1%, 0.8%] | 17 | |
| 60 | +| Improvements ✅ <br /> (primary) | - | - | 0 | |
| 61 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.2%, -0.2%] | 1 | |
| 62 | +| All ❌✅ (primary) | 0.3% | [0.1%, 0.5%] | 31 | |
| 63 | + |
| 64 | +Perf turns on incremental-verify-ich, but this should have no effect on builds with that turned off. |
| 65 | + |
| 66 | +#### Improvements |
| 67 | + |
| 68 | +Rollup of 7 pull requests [#138630](https://github.com/rust-lang/rust/pull/138630) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=493c38ba371929579fe136df26eccd9516347c7a&end=259fdb521200c9abba547302fc2c826479ef26b2&stat=instructions:u) |
| 69 | + |
| 70 | +| (instructions:u) | mean | range | count | |
| 71 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 72 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 73 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 74 | +| Improvements ✅ <br /> (primary) | -0.1% | [-0.2%, -0.1%] | 5 | |
| 75 | +| Improvements ✅ <br /> (secondary) | -0.4% | [-0.7%, -0.2%] | 4 | |
| 76 | +| All ❌✅ (primary) | -0.1% | [-0.2%, -0.1%] | 5 | |
| 77 | + |
| 78 | + |
| 79 | +Represent diagnostic side effects as dep nodes [#122156](https://github.com/rust-lang/rust/pull/122156) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a7fc463dd8fbeca800d4b3efc501069502cffe64&end=1aeb99d248e1b0069110cb03c6f1dcc7b36fd7f3&stat=instructions:u) |
| 80 | + |
| 81 | +| (instructions:u) | mean | range | count | |
| 82 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 83 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 84 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 85 | +| Improvements ✅ <br /> (primary) | -0.7% | [-1.4%, -0.2%] | 117 | |
| 86 | +| Improvements ✅ <br /> (secondary) | -0.9% | [-1.6%, -0.0%] | 37 | |
| 87 | +| All ❌✅ (primary) | -0.7% | [-1.4%, -0.2%] | 117 | |
| 88 | + |
| 89 | + |
| 90 | +Rollup of 10 pull requests [#138873](https://github.com/rust-lang/rust/pull/138873) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=7290b04b0a46de2118968aa556bfc0970aac6661&end=ae8ab87de4d8caab5d91a027bc19bb5d5e8a3691&stat=instructions:u) |
| 91 | + |
| 92 | +| (instructions:u) | mean | range | count | |
| 93 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 94 | +| Regressions ❌ <br /> (primary) | 0.1% | [0.1%, 0.1%] | 1 | |
| 95 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 96 | +| Improvements ✅ <br /> (primary) | -2.2% | [-4.3%, -0.2%] | 20 | |
| 97 | +| Improvements ✅ <br /> (secondary) | -1.3% | [-3.7%, -0.2%] | 98 | |
| 98 | +| All ❌✅ (primary) | -2.1% | [-4.3%, 0.1%] | 21 | |
| 99 | + |
| 100 | + |
| 101 | +Optimize hash map operations in the query system [#115747](https://github.com/rust-lang/rust/pull/115747) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=b95aac6a98e43ee9d47cd05cb2d476610c51dcb7&end=90f5eab952728ac6edcf529a171f7de5c25e5d49&stat=instructions:u) |
| 102 | + |
| 103 | +| (instructions:u) | mean | range | count | |
| 104 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 105 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 106 | +| Regressions ❌ <br /> (secondary) | - | - | 0 | |
| 107 | +| Improvements ✅ <br /> (primary) | -0.2% | [-0.4%, -0.1%] | 20 | |
| 108 | +| Improvements ✅ <br /> (secondary) | -0.2% | [-0.3%, -0.1%] | 24 | |
| 109 | +| All ❌✅ (primary) | -0.2% | [-0.4%, -0.1%] | 20 | |
| 110 | + |
| 111 | + |
| 112 | +#### Mixed |
| 113 | + |
| 114 | +Consider fields to be inhabited if they are unstable [#133889](https://github.com/rust-lang/rust/pull/133889) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=87e60a7d285f8ea560189024f85f2b194d1f168f&end=d8e44b722a93e55cbc9a8188dfbfe3faf1226096&stat=instructions:u) |
| 115 | + |
| 116 | +| (instructions:u) | mean | range | count | |
| 117 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 118 | +| Regressions ❌ <br /> (primary) | 0.2% | [0.2%, 0.2%] | 3 | |
| 119 | +| Regressions ❌ <br /> (secondary) | 1.4% | [0.3%, 1.9%] | 11 | |
| 120 | +| Improvements ✅ <br /> (primary) | -0.0% | [-0.0%, -0.0%] | 1 | |
| 121 | +| Improvements ✅ <br /> (secondary) | - | - | 0 | |
| 122 | +| All ❌✅ (primary) | 0.1% | [-0.0%, 0.2%] | 4 | |
| 123 | + |
| 124 | +This is a soundness fix and the regression is limited to our stress test for this area of the code: |
| 125 | + |
| 126 | +> The perf diff is in the match exhaustiveness stress-test. I don't think we're |
| 127 | +> running any new code for this test, but it's always very sensitive to things |
| 128 | +> like inlining decisions so I'm not surprised. Good to know, and ok to ignore. |
| 129 | +
|
| 130 | +(https://github.com/rust-lang/rust/pull/133889) |
| 131 | + |
| 132 | +Reduce FormattingOptions to 64 bits [#136974](https://github.com/rust-lang/rust/pull/136974) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=db687889a5833381b8b02738a1af93a09a97ba16&end=0ce1369bde8ea61c0286f6e3e35e38fca569a50b&stat=instructions:u) |
| 133 | + |
| 134 | +| (instructions:u) | mean | range | count | |
| 135 | +|:----------------------------------:|:-----:|:--------------:|:-----:| |
| 136 | +| Regressions ❌ <br /> (primary) | - | - | 0 | |
| 137 | +| Regressions ❌ <br /> (secondary) | 0.2% | [0.2%, 0.2%] | 3 | |
| 138 | +| Improvements ✅ <br /> (primary) | -0.4% | [-0.5%, -0.2%] | 7 | |
| 139 | +| Improvements ✅ <br /> (secondary) | -1.5% | [-1.5%, -1.5%] | 1 | |
| 140 | +| All ❌✅ (primary) | -0.4% | [-0.5%, -0.2%] | 7 | |
| 141 | + |
| 142 | +Regressions are limited to the `coercions` secondary benchmark, which sometimes |
| 143 | +has natural bimodality. It doesn't seem worth further investigation into this |
| 144 | +regression given the limited regression. |
0 commit comments