2020-11-19 Triage Log
This was a relatively mixed week, with some very large performance wins balanced out by a relatively large range of benchmarks seeing small performance regressions.
The winner this week for largest performance improvement was #78826 which saw huge gains in the relatively new derive stress benchmark.
Triage done by @rylev. Revision range: cf9cf7c923eb01146971429044f216a3ca905e06..c919f490bbcd2b29b74016101f7ec71aaa24bdbb
5 Regressions, 5 Improvements, 2 Mixed
6 rollups had perfomance impacts (3 negative, 1 positive, 2 mixed)
Regressions
#76256
- Moderate regression in instruction counts (up to 1.4% on
incr-unchanged
builds of externs-check
) - Changes to the serialization of span end line/column.
- This regresses performance slightly but is a necessary correctness fix that was affecting incremental builds (see the linked PR for many related issues). The performance lost here is balanced out by a related change to the hashing algorithm introduced previously.
#78998
- Moderate regression in instruction counts (up to 1.2% on
incr-unchanged
builds of deep-vector-check
) - Rollup
- Most likely introduced by #78836 (Implement destructuring assignment for structs and slices)
#79065
- Moderate regression in instruction counts (up to 2.9% on
full
builds of deeply-nested-async-check
) - Rollup
#78801
- Moderate regression in instruction counts (up to 2.3% on
full
builds of inflate-check
) - Initial implementation of precise capture analysis in closures
#79128
- Moderate regression in instruction counts (up to 2.5% on
full
builds of ctfe-stress-4-check
) - Rollup
- The affected benchmark is prone to noise, so it's not sure that this is an actual regression.
Improvements
#78826
- Very large improvement in instruction counts (up to -49.0% on
incr-unchanged
builds of derive-check
) - Change how macro_rules scopes are tracked during expansion so that they do not grow to big.
- This was particularly helpful in the new derive stress test benchmark, but yielded improvements in several other benchmarks.
#78825
- Moderate improvement in instruction counts (up to -1.5% on
incr-patched: println
builds of coercions-debug
) - Changes several usages of
unwrap_or
to unwrap_or_else
so that the else case is lazily evaluated.
#78956
- Moderate improvement in instruction counts (up to -1.1% on
incr-patched: println
builds of coercions-debug
) - Rollup
#78313
- Moderate improvement in instruction counts (up to -2.1% on
full
builds of inflate-check
) - Internal refactor (proposed here) where
TypeFoldable
takes self by value instead of reference.
#78779
- Moderate improvement in instruction counts (up to -2.0% on
full
builds of inflate-check
) - Internal refactoring which introduces
BreakTy
in TypeVisitor
.
Mixed
#78920
- Moderate improvement in instruction counts (up to -2.5% on
incr-patched: b9b3e592dd cherry picked
builds of style-servo-opt
) - Moderate regression in instruction counts (up to 1.5% on
incr-patched: println
builds of coercions-debug
) - Rollup
#79104
- Large regression in instruction counts (up to 6.5% on
full
builds of keccak-opt
) - Moderate improvement in instruction counts (up to -2.1% on
incr-patched: b9b3e592dd cherry picked
builds of style-servo-debug
) - Rollup
Nags requiring follow up
No nags this week.