|
| 1 | +2020-11-24 Triage Log |
| 2 | + |
| 3 | +TODO: Summary |
| 4 | + |
| 5 | +Triage done by **@jyn514**. |
| 6 | +Revision range: [c919f490bbcd2b29b74016101f7ec71aaa24bdbb..25a691003cf6676259ee7d4bed05b43cb6283cea](https://perf.rust-lang.org/?start=c919f490bbcd2b29b74016101f7ec71aaa24bdbb&end=25a691003cf6676259ee7d4bed05b43cb6283cea&absolute=false&stat=instructions%3Au) |
| 7 | + |
| 8 | +5 Regressions, 5 Improvements, 4 Mixed |
| 9 | +??? of them in rollups |
| 10 | + |
| 11 | +#### Regressions |
| 12 | + |
| 13 | +[#79167](https://github.com/rust-lang/rust/issues/79167): linux: try to use libc getrandom to allow interposition #78785 |
| 14 | +- Large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=7d747db0d5dd8f08f2efb073e2e77a34553465a7&end=8d2d0014922e9f541694bfe87642749239990e0e&stat=instructions:u) (up to 7.7% on `incr-unchanged` builds of `deeply-nested-async-opt`) |
| 15 | +- The PR allows intercepting `getrandom` at runtime with `LD_PRELOAD`, so it's possible a regression was expected. However, 40% increased bootstrap times for `libcore` seems excessive. |
| 16 | +- Landed in a rollup, so it's possible another PR may be to blame. Opened [#79389](https://github.com/rust-lang/rust/pull/79389) measuring the impact. |
| 17 | + |
| 18 | +[#78646](https://github.com/rust-lang/rust/issues/78646): Use `PackedFingerprint` in `DepNode` to reduce memory consumption |
| 19 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=172acf8f61018df3719e42e633ffd62ebecaa1e7&end=ae6aa22cf26fede2177abe4ff974030058885b7a&stat=instructions:u) (up to 3.2% on `full` builds of `keccak-check`) |
| 20 | +- Major improvement in [memory usage](https://perf.rust-lang.org/compare.html?start=172acf8f61018df3719e42e633ffd62ebecaa1e7&end=ae6aa22cf26fede2177abe4ff974030058885b7a&stat=max-rss) (up to 21.6 on `full` builds of `keccak-opt`) |
| 21 | +- The regression in cycle count is worse than the last perf run on the PR, but overall seems to be expected. Not leaving a comment. |
| 22 | + |
| 23 | +[#79237](https://github.com/rust-lang/rust/issues/79237): std: Update the backtrace crate submodule |
| 24 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=d806d656578c2d6b34cf96809862e8cffb293a68&end=3adedb8f4c5bb71e9e8a21a047cf8ed121ce0e75&stat=instructions:u) (up to 1.4% on `incr-unchanged` builds of `unify-linearly-debug`), mostly on `debug` and `opt` builds. |
| 25 | +- **@ehuss** reports a 600% decrease in incremental builds when using `-Z run-dsymutil=no` on MacOS (!!). [#79361](https://github.com/rust-lang/rust/issues/79361) tracks enabling `-Z run-dsymutil=no` by default. |
| 26 | +- **@alexcrichton** theorizes the regression is because there's more code in libstd overall (since it now handles archives of debug symbol). |
| 27 | +- Not leaving a nag, since the regression is small and the improvement more than makes up for it. |
| 28 | + |
| 29 | +[#79273](https://github.com/rust-lang/rust/issues/79273): Rollup of 8 pull requests |
| 30 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=3adedb8f4c5bb71e9e8a21a047cf8ed121ce0e75&end=da384694807172f0ca40eca2e49a11688aba6e93&stat=instructions:u) (up to 1.8% on `full` builds of `coercions-debug`). **@Mark-Simulacrum** thinks this is a false positive, since there are no similar regressions in `-opt` or `-check` builds. |
| 31 | +<!--Most regressions are in LLVM/codegen, so likely due to [#79067](https://github.com/rust-lang/rust/pull/79067/): Refactor the abi handling code a bit.--> |
| 32 | +- Minor improvements in [instruction counts](https://perf.rust-lang.org/compare.html?start=3adedb8f4c5bb71e9e8a21a047cf8ed121ce0e75&end=da384694807172f0ca40eca2e49a11688aba6e93&stat=instructions:u) on `doc` builds (up to .4% on `unused-warnings-doc`). Likely due to [#79264](https://github.com/rust-lang/rust/pull/79264): Get rid of some doctree items. |
| 33 | + |
| 34 | +#### Improvements |
| 35 | + |
| 36 | +[#79200](https://github.com/rust-lang/rust/issues/79200): Rollup of 14 pull requests |
| 37 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=3d3c8c5e0d534cdd794f1b3359089eba031d492c&end=fe982319aa0aa5bbfc2795791a753832292bd2ba&stat=instructions:u) (up to -1.9% on `full` builds of `ctfe-stress-4-opt`, up to -5.5 on `doc` builds) |
| 38 | +- Improvement is almost completely due to a -8.5% improvement on `eval_to_allocation_raw` |
| 39 | +- Unclear which PR caused the improvement; both [#79149](https://github.com/rust-lang/rust/pull/79149) and [#79101](https://github.com/rust-lang/rust/pull/79101) are likely candidates. [Left a nag](https://github.com/rust-lang/rust/pull/79200#issuecomment-733237927) asking the authors to use `rollup=never` in the future. |
| 40 | + |
| 41 | +[#79220](https://github.com/rust-lang/rust/issues/79220) |
| 42 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=09c9c9f7da72b774cc445c0f56fc0b9792a49647&end=4ec27e4b79891b0ebc2ad71a3c4ac94f67d93f93&stat=instructions:u) (up to -3.3% on `full` builds of `deeply-nested-async-check`) |
| 43 | +- Improvement is almost completely due to a -25.6% improvement in `normalize_generic_arg_after_erasing_regions` and -24.7% improvement in `erase_regions_ty`. |
| 44 | +- Likely due to [#79193](https://github.com/rust-lang/rust/pull/79193), which reverts an earlier PR. We should keep an eye on this, since it will likely regress again when the validation is re-enabled. |
| 45 | + |
| 46 | +[#78088](https://github.com/rust-lang/rust/issues/78088): Add lint for `panic!("{}")` |
| 47 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=4ec27e4b79891b0ebc2ad71a3c4ac94f67d93f93&end=74285eb3a83eac639f9c54ba8c4ccf9879b3b00a&stat=instructions:u) (up to -3.3% on `incr-full` builds of `futures-opt`) |
| 48 | +- The improvement is likely because the desugaring of `panic!` changed. |
| 49 | +- Not related to performance triage, but this is the second PR I've seen removing clippy lints altogether instead of going through the deprecation process. Maybe **@rust-lang/clippy** should get pinged automatically on changes to `src/tools/clippy`? |
| 50 | + |
| 51 | +<!-- automated reports start here --> |
| 52 | + |
| 53 | +[#79275](https://github.com/rust-lang/rust/issues/79275) |
| 54 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=8ca930aa262c04a898cf64155e40a6de3ec9ba9e&end=20328b532336017213ccb4095740955d81060ebc&stat=instructions:u) (up to -1.1% on `incr-unchanged` builds of `deeply-nested-async-opt`) |
| 55 | + |
| 56 | +[#78343](https://github.com/rust-lang/rust/issues/78343) |
| 57 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=d9a105fdd46c926ae606777a46dd90e5b838f92f&end=f32a0cce2fd5aaf5f361192af59cf1f2afa5f0ac&stat=instructions:u) (up to -3.0% on `incr-full` builds of `wg-grammar-opt`) |
| 58 | + |
| 59 | +#### Mixed |
| 60 | + |
| 61 | +[#78461](https://github.com/rust-lang/rust/issues/78461) |
| 62 | +- Very large regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=da384694807172f0ca40eca2e49a11688aba6e93&end=a1a13b2bc4fa6370b9501135d97c5fe0bc401894&stat=instructions:u) (up to 36.6% on `incr-patched: println` builds of `clap-rs-debug`) |
| 63 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=da384694807172f0ca40eca2e49a11688aba6e93&end=a1a13b2bc4fa6370b9501135d97c5fe0bc401894&stat=instructions:u) (up to -2.6% on `incr-patched: Compiler new` builds of `regex-opt`) |
| 64 | + |
| 65 | +[#79219](https://github.com/rust-lang/rust/issues/79219) |
| 66 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=c643dd2ec8fed2852f5eee8f776d657293a6a8f2&end=a0d664bae6ca79c54cc054aa2403198e105190a2&stat=instructions:u) (up to 2.3% on `incr-patched: println` builds of `syn-opt`) |
| 67 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=c643dd2ec8fed2852f5eee8f776d657293a6a8f2&end=a0d664bae6ca79c54cc054aa2403198e105190a2&stat=instructions:u) (up to -1.0% on `incr-unchanged` builds of `deeply-nested-async-opt`) |
| 68 | + |
| 69 | +[#79319](https://github.com/rust-lang/rust/issues/79319) |
| 70 | +- Very large improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=a0d664bae6ca79c54cc054aa2403198e105190a2&end=32da90b431919eedb3e281a91caea063ba4edb77&stat=instructions:u) (up to -26.4% on `incr-patched: println` builds of `cargo-opt`) |
| 71 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=a0d664bae6ca79c54cc054aa2403198e105190a2&end=32da90b431919eedb3e281a91caea063ba4edb77&stat=instructions:u) (up to 3.5% on `full` builds of `cranelift-codegen-opt`) |
| 72 | + |
| 73 | +[#79186](https://github.com/rust-lang/rust/issues/79186) |
| 74 | +- Moderate improvement in [instruction counts](https://perf.rust-lang.org/compare.html?start=068320b39e3e4839d832b3aa71fa910ba170673b&end=40cf72108edb9b8633a9d284b238988309204494&stat=instructions:u) (up to -4.5% on `full` builds of `regression-31157-opt`) |
| 75 | +- Moderate regression in [instruction counts](https://perf.rust-lang.org/compare.html?start=068320b39e3e4839d832b3aa71fa910ba170673b&end=40cf72108edb9b8633a9d284b238988309204494&stat=instructions:u) (up to 4.4% on `full` builds of `deeply-nested-async-check`) |
| 76 | + |
| 77 | +#### Nags requiring follow up |
| 78 | + |
| 79 | +- [Left a comment](https://github.com/rust-lang/rust/pull/79167#issuecomment-733207145) nagging the author of the `LD_PRELOAD` PR. |
| 80 | +- [Left a comment](https://github.com/rust-lang/rust/pull/79273#issuecomment-733224830) asking why a codegen refactor could have regressed instruction count. |
| 81 | +- [Left a comment](https://github.com/rust-lang/rust/pull/79220#issuecomment-733248754) noting that we should keep an eye on performance for when the MIR validation is re-enabled. |
0 commit comments