Conversation
Asset size changes
Baseline commit: 2fcfc2b90dc0a19c3505b01733b0f6104f1ba82d (build) |
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit d18ebe1:
|
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 958 | 974 | 5000 | |
| BaseButton | mount | 1043 | 1078 | 5000 | |
| Breadcrumb | mount | 2813 | 2789 | 1000 | |
| ButtonNext | mount | 571 | 564 | 5000 | |
| Checkbox | mount | 1755 | 1784 | 5000 | |
| CheckboxBase | mount | 1517 | 1504 | 5000 | |
| ChoiceGroup | mount | 5313 | 5345 | 5000 | |
| ComboBox | mount | 1082 | 1072 | 1000 | |
| CommandBar | mount | 11093 | 11129 | 1000 | |
| ContextualMenu | mount | 6795 | 6764 | 1000 | |
| DefaultButton | mount | 1293 | 1263 | 5000 | |
| DetailsRow | mount | 4128 | 4220 | 5000 | |
| DetailsRowFast | mount | 4089 | 4093 | 5000 | |
| DetailsRowNoStyles | mount | 3836 | 3939 | 5000 | |
| Dialog | mount | 2337 | 2333 | 1000 | |
| DocumentCardTitle | mount | 154 | 164 | 1000 | |
| Dropdown | mount | 3605 | 3652 | 5000 | |
| FocusTrapZone | mount | 1898 | 1938 | 5000 | |
| FocusZone | mount | 1973 | 1946 | 5000 | |
| IconButton | mount | 1978 | 2004 | 5000 | |
| Label | mount | 386 | 374 | 5000 | |
| Layer | mount | 2049 | 2001 | 5000 | |
| Link | mount | 503 | 516 | 5000 | |
| MakeStyles | mount | 2030 | 1929 | 50000 | |
| MenuButton | mount | 1622 | 1688 | 5000 | |
| MessageBar | mount | 2187 | 2197 | 5000 | |
| Nav | mount | 3631 | 3682 | 1000 | |
| OverflowSet | mount | 1156 | 1179 | 5000 | |
| Panel | mount | 1533 | 2341 | 1000 | |
| Persona | mount | 955 | 908 | 1000 | |
| Pivot | mount | 1595 | 1614 | 1000 | |
| PrimaryButton | mount | 1499 | 1505 | 5000 | |
| Rating | mount | 8751 | 8795 | 5000 | |
| SearchBox | mount | 1524 | 1525 | 5000 | |
| Shimmer | mount | 2969 | 2865 | 5000 | |
| Slider | mount | 2240 | 2183 | 5000 | |
| SpinButton | mount | 5566 | 5524 | 5000 | |
| Spinner | mount | 461 | 460 | 5000 | |
| SplitButton | mount | 3572 | 3555 | 5000 | |
| Stack | mount | 565 | 584 | 5000 | |
| StackWithIntrinsicChildren | mount | 1772 | 1705 | 5000 | |
| StackWithTextChildren | mount | 5308 | 5207 | 5000 | |
| SwatchColorPicker | mount | 11345 | 11397 | 5000 | |
| Tabs | mount | 1581 | 1581 | 1000 | |
| TagPicker | mount | 2677 | 2777 | 5000 | |
| TeachingBubble | mount | 12910 | 12836 | 5000 | |
| Text | mount | 472 | 499 | 5000 | |
| TextField | mount | 1591 | 1574 | 5000 | |
| ThemeProvider | mount | 1297 | 1327 | 5000 | |
| ThemeProvider | virtual-rerender | 648 | 645 | 5000 | |
| ThemeProviderNext | mount | 7077 | 7013 | 5000 | |
| Toggle | mount | 902 | 915 | 5000 | |
| buttonNative | mount | 118 | 127 | 5000 |
Perf Analysis (@fluentui/react-northstar)
Perf tests with no regressions
| Scenario | Current PR Ticks | Baseline Ticks | Ratio |
|---|---|---|---|
| ButtonMinimalPerf.default | 207 | 189 | 1.1:1 |
| ListCommonPerf.default | 760 | 688 | 1.1:1 |
| TextMinimalPerf.default | 435 | 394 | 1.1:1 |
| AnimationMinimalPerf.default | 472 | 437 | 1.08:1 |
| SegmentMinimalPerf.default | 420 | 390 | 1.08:1 |
| AttachmentSlotsPerf.default | 1348 | 1255 | 1.07:1 |
| CarouselMinimalPerf.default | 530 | 497 | 1.07:1 |
| LabelMinimalPerf.default | 454 | 425 | 1.07:1 |
| PortalMinimalPerf.default | 176 | 165 | 1.07:1 |
| AttachmentMinimalPerf.default | 184 | 173 | 1.06:1 |
| ChatWithPopoverPerf.default | 434 | 411 | 1.06:1 |
| StatusMinimalPerf.default | 840 | 793 | 1.06:1 |
| IconMinimalPerf.default | 751 | 706 | 1.06:1 |
| ChatDuplicateMessagesPerf.default | 324 | 309 | 1.05:1 |
| ReactionMinimalPerf.default | 462 | 438 | 1.05:1 |
| LayoutMinimalPerf.default | 441 | 426 | 1.04:1 |
| ButtonOverridesMissPerf.default | 1873 | 1820 | 1.03:1 |
| ButtonSlotsPerf.default | 651 | 631 | 1.03:1 |
| FlexMinimalPerf.default | 337 | 326 | 1.03:1 |
| HeaderMinimalPerf.default | 420 | 408 | 1.03:1 |
| TreeMinimalPerf.default | 903 | 880 | 1.03:1 |
| AccordionMinimalPerf.default | 176 | 172 | 1.02:1 |
| AlertMinimalPerf.default | 306 | 301 | 1.02:1 |
| AvatarMinimalPerf.default | 221 | 216 | 1.02:1 |
| BoxMinimalPerf.default | 397 | 389 | 1.02:1 |
| CardMinimalPerf.default | 642 | 628 | 1.02:1 |
| DividerMinimalPerf.default | 411 | 404 | 1.02:1 |
| DropdownManyItemsPerf.default | 786 | 773 | 1.02:1 |
| FormMinimalPerf.default | 484 | 475 | 1.02:1 |
| InputMinimalPerf.default | 1364 | 1342 | 1.02:1 |
| ItemLayoutMinimalPerf.default | 1451 | 1425 | 1.02:1 |
| ListWith60ListItems.default | 742 | 729 | 1.02:1 |
| MenuMinimalPerf.default | 950 | 929 | 1.02:1 |
| TableMinimalPerf.default | 495 | 483 | 1.02:1 |
| TooltipMinimalPerf.default | 1100 | 1081 | 1.02:1 |
| VideoMinimalPerf.default | 756 | 741 | 1.02:1 |
| ChatMinimalPerf.default | 708 | 698 | 1.01:1 |
| DatepickerMinimalPerf.default | 6165 | 6107 | 1.01:1 |
| DialogMinimalPerf.default | 827 | 816 | 1.01:1 |
| EmbedMinimalPerf.default | 4518 | 4462 | 1.01:1 |
| GridMinimalPerf.default | 390 | 385 | 1.01:1 |
| ImageMinimalPerf.default | 434 | 428 | 1.01:1 |
| ListNestedPerf.default | 629 | 620 | 1.01:1 |
| MenuButtonMinimalPerf.default | 1788 | 1776 | 1.01:1 |
| SkeletonMinimalPerf.default | 412 | 407 | 1.01:1 |
| ToolbarMinimalPerf.default | 1097 | 1083 | 1.01:1 |
| TreeWith60ListItems.default | 199 | 197 | 1.01:1 |
| CheckboxMinimalPerf.default | 3000 | 3004 | 1:1 |
| HeaderSlotsPerf.default | 893 | 896 | 1:1 |
| LoaderMinimalPerf.default | 760 | 760 | 1:1 |
| SliderMinimalPerf.default | 1720 | 1712 | 1:1 |
| CustomToolbarPrototype.default | 4085 | 4077 | 1:1 |
| DropdownMinimalPerf.default | 3258 | 3302 | 0.99:1 |
| PopupMinimalPerf.default | 626 | 633 | 0.99:1 |
| SplitButtonMinimalPerf.default | 4319 | 4374 | 0.99:1 |
| ListMinimalPerf.default | 591 | 604 | 0.98:1 |
| ProviderMergeThemesPerf.default | 1731 | 1764 | 0.98:1 |
| ProviderMinimalPerf.default | 1065 | 1084 | 0.98:1 |
| TextAreaMinimalPerf.default | 570 | 582 | 0.98:1 |
| TableManyItemsPerf.default | 2239 | 2301 | 0.97:1 |
| RadioGroupMinimalPerf.default | 495 | 520 | 0.95:1 |
| RefMinimalPerf.default | 252 | 264 | 0.95:1 |
| RosterPerf.default | 1237 | 1356 | 0.91:1 |
…hore/babel-plugins � Conflicts: � package.json
…hore/babel-plugins
| "@types/tmp": "0.2.0", | ||
| "@types/react": "16.9.42", | ||
| "@types/react-dom": "16.9.10", | ||
| "babel-plugin-annotate-pure-calls": "0.4.0", |
There was a problem hiding this comment.
Only this dependency have been added, all other changes are just reordering
Hotell
left a comment
There was a problem hiding this comment.
good job! PURE all the thingz :D
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
|
🎉 Handy links: |
Addresses an existing issue: Fixes #0000$ yarn changeDescription of changes
This PR adds two Babel plugins to existing pipeline to improve bundle size: these plugins add
/*#__PURE__*/annotations before React & pure function calls, which allows them to be tree shaken/dead code eliminated by Terser and other minifiers.@babel/transform-react-pure-annotationsbabel/babel#11428
Without a plugin
With plugin
babel-plugin-annotate-pure-callshttps://www.npmjs.com/package/babel-plugin-annotate-pure-calls
Is also used in
tsdx: https://github.com/formium/tsdx/blob/462af2d002987f985695b98400e0344b8f2754b7/src/babelPluginTsdx.ts#L72Without a plugin
With plugin