2022-12-13 Triage Log

Fairly quiet week with the only excitement coming from a nice improvement implemented by @nnethercote which fixed a pesky performance regression in the linting system. This produced a 0.6% performance improvement across a large number of the real world crates we test against.

Triage done by @rylev. Revision range: 9db224fc..109cccbe

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.2%[0.2%, 0.2%]3
Regressions ❌
(secondary)
1.7%[0.3%, 3.3%]11
Improvements ✅
(primary)
-0.8%[-2.2%, -0.2%]129
Improvements ✅
(secondary)
-1.2%[-4.4%, -0.1%]97
All ❌✅ (primary)-0.7%[-2.2%, 0.2%]132

2 Regressions, 2 Improvements, 4 Mixed; 3 of them in rollups 41 artifact comparisons made in total

Regressions

Rollup of 9 pull requests #105378 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.9%[0.2%, 4.4%]12
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.8%[-0.8%, -0.8%]1
All ❌✅ (primary)--0
  • Suspicion is that #105250 is the cause. Running a regression test to confirm.
  • This is small enough that it's not worth stressing about.

Fast-path some binder relations #105350 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.1%[1.0%, 1.2%]2
Regressions ❌
(secondary)
2.3%[2.0%, 2.7%]6
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)1.1%[1.0%, 1.2%]2
  • This is noise. The regression cancel out the improvements in the exact same test cases from the previous commit which is a very strong indicator that this is noise.

Improvements

Fix lint perf regressions #105485 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.6%[-1.5%, -0.2%]138
Improvements ✅
(secondary)
-0.8%[-2.5%, -0.2%]93
All ❌✅ (primary)-0.6%[-1.5%, -0.2%]138

Inline and remove place_contents_drop_state_cannot_differ. #105436 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.8%[-1.2%, -0.4%]3
Improvements ✅
(secondary)
-2.2%[-2.6%, -2.0%]6
All ❌✅ (primary)-0.8%[-1.2%, -0.4%]3
  • These are noise and went away in the next commit

Mixed

Rollup of 10 pull requests #105486 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.4%, 0.4%]1
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.9%[-4.0%, -3.8%]2
All ❌✅ (primary)0.4%[0.4%, 0.4%]1
  • A single tiny regression on a doc profiler, not worth worrying about. (commented here)

Rollup of 9 pull requests #105512 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.1%[1.1%, 1.1%]1
Improvements ✅
(primary)
-0.2%[-0.2%, -0.2%]1
Improvements ✅
(secondary)
-0.4%[-0.6%, -0.2%]6
All ❌✅ (primary)-0.2%[-0.2%, -0.2%]1
  • The regressions is small in absolute terms, only in instructions count, it‘s a short stress test that doesn’t seem to be the only one to exercise some codepath changed in this PR. Nothing jumps out in the rolled up PRs nor seems to apply to the other benchmarks. There are also small wins elsewhere, so this seems fine. (commented here)

Group some fields in a common struct so we only pass one reference instead of three #105357 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.2%, 0.7%]23
Regressions ❌
(secondary)
0.4%[0.1%, 0.7%]22
Improvements ✅
(primary)
-0.5%[-0.8%, -0.2%]33
Improvements ✅
(secondary)
-0.9%[-1.4%, -0.2%]18
All ❌✅ (primary)-0.1%[-0.8%, 0.7%]56
  • Wins appear to roughly equal or slightly outweigh the losses here. (commented here)

Remove token::Lit from ast::MetaItemLit. #105160 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.0%[1.0%, 1.0%]1
Improvements ✅
(primary)
-0.9%[-1.0%, -0.8%]5
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.9%[-1.0%, -0.8%]5
  • There is a single trivial regression, which may or may not be real. (commented here)