Skip to content

🚨 7.1 Package Size Regressions #4218

@michael-hawker

Description

@michael-hawker

Describe the bug

Analyzing our package sizes between 7.1-rc1 and 7.0 stable has revealed some increases to our base package sizes, some minimal amounts can be expected from new features, but these seem more significant.

  • Is this bug a regression in the toolkit? If so, what toolkit version did you last see it work:

Steps to Reproduce

Mar 16 - This is a report generated from a newly built copy of the rel/7.0.0 branch:
7-0-0.txt

Jul 23 - WinUI 2.6 Update (compare against 7.0, overall this has minimal impact on toolkit compare at this point (and includes MetadataControl; though does show where we have bug in smoke test where WinUI is over included to projects which don't use it (CI issue only)):
WinUI26.txt

Aug 3 - Constrained Box (compare against WinUI, seems to be minimal impact):
ConstrainedBox.txt

Aug 16 - This is 7.1-preview1 from the CI we still have a copy of:
7-1-0-preview1.txt

Aug 26 - This is the RichSuggestBox PR (compare against 7.1-preview1):
RichSuggestBox.txt

Aug 27 - This is the Shadow API PR (compare against RichSuggestBox):
ShadowAPI.txt

Aug 30 - TwoPaneView ListDetailsView PR (compare against ShadowAPI, seems minimal impact):
TwoPaneView.txt

Aug 30 - And this is 7.1-RC1:
7-1-0-rc1.txt

It appears updating to WinUI 2.6 itself has caused a max increase of 50k and a nominal/min increase of 143k on its own, so that accounts for some of the discrepancy.

However the Primitives package as a whole has increased 500k and Input 759k!

Expected behavior

Would have expected 100-200kb increase overall for the number of controls we added.

Additional context

I did notice we're not including WinUI 2.6 right in the smoke test project so I do some differences in how the comparison is, not sure if that's being accounted for twice or something, so going to fix that and see the difference. Though that would still be only half.

It does seem comparing 7.1-preview1 to the RichSuggestBox implies it's a 263kb add which is on the heavier side. That's a bit surprising unless pulling in the whole RichEditBox is part of that somehow, we'd have to add that to the UWPWinUIBaseline and compare...

The Shadow API seems rather minimal overall, so that one seems safe?

Experiments to Run

  • Record changes over time in list above to narrow in on change period
  • Adjust WinUI config in SmokeTest.csproj to not be included in non-WinUI based projects (this just effects raw reported number but not actual impact)
  • Try adding RichEditBox to the UWPWinUIBaseline and compare...
  • ???

Not sure if anyone else wants to compare above and check my numbers. Beyond Compare is working pretty good for comparison.

Probably means we should figure out how to best implement #4113 for 7.2/8.0...

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions