2023-03-01 Triage Log

Some noisy benchmarks impeded performance review this week. There was a notable improvement to a broad range of primary benchmarks, first from PR #108440, which revised the encodable proc macro to handle the discriminant separately from its fields, and second from PR #108375, which inlined a number of methods that had only a single caller. Both of these PR's were authored by the same contributor; many thanks Zoxc!

Triage done by @pnkfelix. Revision range: 3fee48c1..31f858d9

Summary:

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.4%, 1.5%]16
Regressions ❌
(secondary)
0.6%[0.3%, 0.9%]18
Improvements ✅
(primary)
-0.8%[-17.1%, -0.3%]112
Improvements ✅
(secondary)
-0.7%[-1.8%, -0.1%]50
All ❌✅ (primary)-0.6%[-17.1%, 1.5%]128

5 Regressions, 4 Improvements, 6 Mixed; 6 of them in rollups 39 artifact comparisons made in total

Regressions

errors: generate typed identifiers in each crate #103042 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.1%[1.0%, 1.2%]2
Regressions ❌
(secondary)
2.2%[2.0%, 2.6%]6
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)1.1%[1.0%, 1.2%]2
  • already triaged, believed to be noise.

Rollup of 10 pull requests #108421 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.7%[0.3%, 1.3%]4
Regressions ❌
(secondary)
2.2%[2.0%, 2.6%]6
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.7%[0.3%, 1.3%]4
  • already triaged, believed to be noise.

Print a backtrace when query forcing fails. #91742 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.3%[0.2%, 0.7%]65
Regressions ❌
(secondary)
0.5%[0.2%, 2.3%]14
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.3%[0.2%, 0.7%]65

Rollup of 9 pull requests #108488 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.4%[0.8%, 2.0%]2
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)1.4%[0.8%, 2.0%]2
  • two doc,full regressions: 2% on hyper, 0.76% on serde...
  • not worth teasing out of rollup; marked as triaged

MIR-Validate StorageLive. #108175 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.6%[0.6%, 0.7%]3
Regressions ❌
(secondary)
0.3%[0.3%, 0.5%]4
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)0.6%[0.6%, 0.7%]3
  • regressed helloworld check by 0.6% in three incremental scenarios.
  • note though that these regressions did not show up in the timer run before the PR landed.
  • marked as triaged.

Improvements

Rollup of 6 pull requests #108357 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
1.8%[1.8%, 1.8%]1
Improvements ✅
(primary)
-1.0%[-1.1%, -0.9%]2
Improvements ✅
(secondary)
-2.2%[-2.5%, -1.9%]6
All ❌✅ (primary)-1.0%[-1.1%, -0.9%]2

Use tcx.ty_error_with_guaranteed in more places, rename variants #108369 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-1.1%[-1.2%, -1.0%]2
Improvements ✅
(secondary)
-2.2%[-2.5%, -2.0%]6
All ❌✅ (primary)-1.1%[-1.2%, -1.0%]2

Emit the enum discriminant separately for the Encodable macro #108440 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-0.6%[-1.0%, -0.3%]91
Improvements ✅
(secondary)
-0.6%[-0.9%, -0.4%]22
All ❌✅ (primary)-0.6%[-1.0%, -0.3%]91

rustdoc: reduce allocations when generating tooltips #108098 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
-5.1%[-17.0%, -0.6%]4
Improvements ✅
(secondary)
-0.9%[-0.9%, -0.9%]1
All ❌✅ (primary)-5.1%[-17.0%, -0.6%]4

Mixed

Rollup of 8 pull requests #108339 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
0.4%[0.3%, 0.6%]4
Regressions ❌
(secondary)
0.8%[0.7%, 0.9%]6
Improvements ✅
(primary)
-0.8%[-3.0%, -0.2%]8
Improvements ✅
(secondary)
-0.2%[-0.3%, -0.2%]2
All ❌✅ (primary)-0.4%[-3.0%, 0.6%]12
  • seems like a wash, in terms of mix of regressions and improvements. the one outlier was the 3% improvement to opt-full on cranelift-codegen.
  • the primary regressions were to ripgrep opt-full (0.59%), image opt-full (0.51%), cranelift-codegen check-full (0.42%), and cranelift-codegen check-incr-full (0.27%)
  • I do not think its worth trying to dissect the rollup at this point though. Marking as triaged.

diagnostics: if AssocFn has self argument, describe as method #108324 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.1%[1.0%, 1.2%]2
Regressions ❌
(secondary)
2.2%[2.0%, 2.6%]6
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-2.3%[-2.3%, -2.3%]1
All ❌✅ (primary)1.1%[1.0%, 1.2%]2
  • already triaged as noise.

Update cargo #108330 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.5%[2.5%, 2.5%]1
Improvements ✅
(primary)
-1.0%[-1.1%, -0.9%]2
Improvements ✅
(secondary)
-2.2%[-2.5%, -1.9%]6
All ❌✅ (primary)-1.0%[-1.1%, -0.9%]2
  • already triaged as noise

Rollup of 7 pull requests #108386 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
1.0%[0.9%, 1.1%]2
Regressions ❌
(secondary)
2.0%[0.4%, 2.6%]7
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-2.5%[-2.5%, -2.5%]1
All ❌✅ (primary)1.0%[0.9%, 1.1%]2
  • primary cranelift-codegen; secondary keccak, coercions, unused-warnings
  • seems like the same cases that were already categorized as noise by nnethercote in several other cases
  • marking as triaged.

Rollup of 7 pull requests #108464 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.4%[0.4%, 0.4%]1
Improvements ✅
(primary)
-0.7%[-0.9%, -0.6%]6
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-0.7%[-0.9%, -0.6%]6
  • already triaged

Add inlining attributes for query system functions #108375 (Comparison Link)

(instructions:u)meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.4%[0.2%, 0.7%]5
Improvements ✅
(primary)
-0.4%[-1.1%, -0.2%]38
Improvements ✅
(secondary)
-0.4%[-0.7%, -0.2%]12
All ❌✅ (primary)-0.4%[-1.1%, -0.2%]38
  • wins clearly outweigh losses here.
  • marking as triaged.

Untriaged Pull Requests

Nags requiring follow up

TODO: Nags