Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(scripts-task): turn off path aliases within generate-api task, make isUsingPathAliasesForDx lazy => improve d.ts generation speed by ~60% #30990

Merged

Conversation

Hotell
Copy link
Contributor

@Hotell Hotell commented Apr 8, 2024

Pre-requirements:

Previous Behavior

New Behavior

  • isUsingPathAliasesForDx us not used anymore for v9 packages - refactored to make it lazy for few v0/v8 invocations
  • TS path aliases are not used anymore for d.ts generation in v9 packages - which yields significant perf boost ( up to 60% faster - based on package )
command Before After
yarn workspace @fluentui/react-drawer generate-api 16s 7s / 𝚫 56% faster

Related Issue(s)

@github-actions github-actions bot added this to the April Project Cycle Q1 2024 milestone Apr 8, 2024
@Hotell Hotell changed the title Type checking perf/prerequirements/generate api perf(scripts-task): turn off path aliases within generate-api task, make isUsingPathAliasesForDx lazy => improve d.ts generation by ~60% Apr 8, 2024
@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

Perf Analysis (@fluentui/react-components)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 634 617 5000
Button mount 304 291 5000
Field mount 1144 1137 5000
FluentProvider mount 696 713 5000
FluentProviderWithTheme mount 77 80 10
FluentProviderWithTheme virtual-rerender 32 31 10
FluentProviderWithTheme virtual-rerender-with-unmount 70 78 10
MakeStyles mount 853 853 50000
Persona mount 1805 1744 5000
SpinButton mount 1403 1382 5000

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

📊 Bundle size report

✅ No changes found

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
AccordionMinimalPerf.default 87 73 1.19:1
ButtonMinimalPerf.default 93 82 1.13:1
AlertMinimalPerf.default 166 150 1.11:1
ImageMinimalPerf.default 240 216 1.11:1
SkeletonMinimalPerf.default 213 192 1.11:1
LoaderMinimalPerf.default 206 188 1.1:1
AttachmentMinimalPerf.default 85 79 1.08:1
LabelMinimalPerf.default 223 207 1.08:1
HeaderMinimalPerf.default 220 206 1.07:1
ListNestedPerf.default 337 316 1.07:1
RefMinimalPerf.default 117 109 1.07:1
DropdownManyItemsPerf.default 400 377 1.06:1
FlexMinimalPerf.default 165 155 1.06:1
FormMinimalPerf.default 225 213 1.06:1
ButtonSlotsPerf.default 309 295 1.05:1
ChatDuplicateMessagesPerf.default 158 151 1.05:1
RadioGroupMinimalPerf.default 270 258 1.05:1
AnimationMinimalPerf.default 306 294 1.04:1
DatepickerMinimalPerf.default 3751 3634 1.03:1
SliderMinimalPerf.default 764 745 1.03:1
ToolbarMinimalPerf.default 546 531 1.03:1
AvatarMinimalPerf.default 111 109 1.02:1
ButtonOverridesMissPerf.default 662 650 1.02:1
ChatMinimalPerf.default 444 437 1.02:1
GridMinimalPerf.default 188 184 1.02:1
HeaderSlotsPerf.default 464 454 1.02:1
ListCommonPerf.default 393 387 1.02:1
ListMinimalPerf.default 310 304 1.02:1
ListWith60ListItems.default 368 361 1.02:1
MenuMinimalPerf.default 507 495 1.02:1
ReactionMinimalPerf.default 212 208 1.02:1
SegmentMinimalPerf.default 198 195 1.02:1
TableMinimalPerf.default 237 232 1.02:1
TextMinimalPerf.default 197 193 1.02:1
AttachmentSlotsPerf.default 648 642 1.01:1
BoxMinimalPerf.default 199 197 1.01:1
CheckboxMinimalPerf.default 1147 1138 1.01:1
DropdownMinimalPerf.default 1425 1416 1.01:1
MenuButtonMinimalPerf.default 964 955 1.01:1
RosterPerf.default 1564 1554 1.01:1
TreeMinimalPerf.default 486 483 1.01:1
VideoMinimalPerf.default 443 440 1.01:1
ItemLayoutMinimalPerf.default 698 701 1:1
LayoutMinimalPerf.default 202 201 1:1
ProviderMergeThemesPerf.default 648 648 1:1
ProviderMinimalPerf.default 203 203 1:1
StatusMinimalPerf.default 389 388 1:1
TableManyItemsPerf.default 1117 1115 1:1
TreeWith60ListItems.default 81 81 1:1
EmbedMinimalPerf.default 1835 1860 0.99:1
InputMinimalPerf.default 540 545 0.99:1
PopupMinimalPerf.default 351 356 0.99:1
TextAreaMinimalPerf.default 277 280 0.99:1
CarouselMinimalPerf.default 256 261 0.98:1
DialogMinimalPerf.default 431 438 0.98:1
PortalMinimalPerf.default 86 88 0.98:1
SplitButtonMinimalPerf.default 2235 2282 0.98:1
IconMinimalPerf.default 389 395 0.98:1
CustomToolbarPrototype.default 1455 1492 0.98:1
TooltipMinimalPerf.default 1285 1310 0.98:1
DividerMinimalPerf.default 199 206 0.97:1
CardMinimalPerf.default 301 316 0.95:1
ChatWithPopoverPerf.default 183 192 0.95:1

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

🕵 fluentuiv8 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

🕵 FluentUIV0 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 608 634 5000
Breadcrumb mount 1663 1678 1000
Checkbox mount 1711 1669 5000
CheckboxBase mount 1472 1478 5000
ChoiceGroup mount 2955 2916 5000
ComboBox mount 643 646 1000
CommandBar mount 6091 6131 1000
ContextualMenu mount 11404 11475 1000
DefaultButton mount 746 738 5000
DetailsRow mount 2149 2148 5000
DetailsRowFast mount 2232 2168 5000
DetailsRowNoStyles mount 1992 1993 5000
Dialog mount 2761 2750 1000
DocumentCardTitle mount 222 226 1000
Dropdown mount 1963 1977 5000
FocusTrapZone mount 1128 1172 5000
FocusZone mount 1072 1063 5000
GroupedList mount 40926 41191 2
GroupedList virtual-rerender 19711 19748 2
GroupedList virtual-rerender-with-unmount 49938 50148 2
GroupedListV2 mount 217 216 2
GroupedListV2 virtual-rerender 204 199 2
GroupedListV2 virtual-rerender-with-unmount 222 217 2
IconButton mount 1073 1096 5000
Label mount 340 346 5000
Layer mount 2719 2714 5000
Link mount 376 376 5000
MenuButton mount 951 955 5000
MessageBar mount 21365 21445 5000
Nav mount 1885 1937 1000
OverflowSet mount 781 791 5000
Panel mount 1789 1707 1000
Persona mount 736 732 1000
Pivot mount 870 882 1000
PrimaryButton mount 838 855 5000
Rating mount 4526 4480 5000
SearchBox mount 900 893 5000
Shimmer mount 1830 1824 5000
Slider mount 1284 1300 5000
SpinButton mount 2855 2839 5000
Spinner mount 389 366 5000
SplitButton mount 1863 1821 5000
Stack mount 415 404 5000
StackWithIntrinsicChildren mount 838 842 5000
StackWithTextChildren mount 2568 2527 5000
SwatchColorPicker mount 6147 6050 5000
TagPicker mount 1441 1454 5000
Text mount 370 362 5000
TextField mount 937 920 5000
ThemeProvider mount 831 820 5000
ThemeProvider virtual-rerender 573 580 5000
ThemeProvider virtual-rerender-with-unmount 1250 1286 5000
Toggle mount 602 595 5000
buttonNative mount 181 185 5000

@fabricteam
Copy link
Collaborator

fabricteam commented Apr 8, 2024

🕵 fluentuiv9 No visual regressions between this PR and main

@Hotell Hotell changed the title perf(scripts-task): turn off path aliases within generate-api task, make isUsingPathAliasesForDx lazy => improve d.ts generation by ~60% perf(scripts-task): turn off path aliases within generate-api task, make isUsingPathAliasesForDx lazy => improve d.ts generation speed by ~60% Apr 11, 2024
@Hotell Hotell force-pushed the type-checking-perf/prerequirements/generate-api branch from 737ebc1 to 8eeca37 Compare April 11, 2024 09:42
@Hotell Hotell force-pushed the type-checking-perf/prerequirements/generate-api branch from 8eeca37 to 28d940e Compare April 11, 2024 10:12
Copy link

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.

@Hotell Hotell marked this pull request as ready for review April 11, 2024 11:19
@Hotell Hotell requested review from behowell and a team as code owners April 11, 2024 11:19
@tudorpopams tudorpopams self-requested a review April 11, 2024 12:12
@Hotell Hotell enabled auto-merge (squash) April 11, 2024 16:32
@Hotell Hotell merged commit 0e56f62 into microsoft:master Apr 11, 2024
21 checks passed
@Hotell Hotell deleted the type-checking-perf/prerequirements/generate-api branch April 11, 2024 16:38
robertpenner pushed a commit to robertpenner/fluentui that referenced this pull request Apr 11, 2024
…ake isUsingPathAliasesForDx lazy => improve d.ts generation speed by ~60% (microsoft#30990)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants