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

feat: improve type-checking perf within all apps #31426

Merged
merged 7 commits into from
May 22, 2024

Conversation

Hotell
Copy link
Contributor

@Hotell Hotell commented May 20, 2024

Previous Behavior

New Behavior

  • applies new performant type-check command to all apps applicable
  • normalizes some apps tsconfig setup with ts solution config pattern
  • adds TS setup and type checking for ssr-test v8 app

Applications type-checking perf improvements:

app Before After / Delta
vr-tests 9.37s 2.82s / 𝚫70% 🚅
vr-tests-react-components 14s 5s / 𝚫64% 🚅
ssr-tests-v9 27.8s 3.41s / 𝚫88% 🚅
recipes-react-components 12.44s 2.17s / 𝚫83% 🚅
perf-test-react-components 12s 1.33s / 𝚫89% 🚅
perf-test 7s 1.74s / 𝚫75% 🚅
perf 10.26s 1.73s / 𝚫83% 🚅

Related Issue(s)

@github-actions github-actions bot added this to the April Project Cycle Q1 2024 milestone May 20, 2024
@fabricteam
Copy link
Collaborator

fabricteam commented May 20, 2024

📊 Bundle size report

✅ No changes found

Copy link

codesandbox-ci bot commented May 20, 2024

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 changed the title feat: speed up type-checking within apps feat: improve type-checking perf within all apps May 20, 2024
@fabricteam
Copy link
Collaborator

fabricteam commented May 20, 2024

Perf Analysis (@fluentui/react-components)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 645 635 5000
Button mount 297 308 5000
Field mount 1145 1106 5000
FluentProvider mount 698 716 5000
FluentProviderWithTheme mount 83 85 10
FluentProviderWithTheme virtual-rerender 35 31 10
FluentProviderWithTheme virtual-rerender-with-unmount 77 71 10
MakeStyles mount 871 872 50000
Persona mount 1791 1733 5000
SpinButton mount 1363 1362 5000
SwatchPicker mount 1536 1546 5000

@fabricteam
Copy link
Collaborator

fabricteam commented May 20, 2024

Perf Analysis (@fluentui/react-northstar)

⚠️ 3 potential perf regressions detected

Potential regressions comparing to master

Scenario Current PR Ticks Baseline Ticks Ratio Regression Analysis
FlexMinimalPerf.default 158 154 1.03:1 analysis
AlertMinimalPerf.default 155 154 1.01:1 analysis
AttachmentMinimalPerf.default 80 79 1.01:1 analysis
Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
TreeWith60ListItems.default 88 80 1.1:1
HeaderMinimalPerf.default 209 196 1.07:1
ButtonMinimalPerf.default 90 85 1.06:1
ReactionMinimalPerf.default 216 203 1.06:1
TextAreaMinimalPerf.default 288 271 1.06:1
AccordionMinimalPerf.default 85 81 1.05:1
DropdownMinimalPerf.default 1434 1371 1.05:1
HeaderSlotsPerf.default 454 432 1.05:1
RosterPerf.default 1559 1491 1.05:1
PortalMinimalPerf.default 88 84 1.05:1
SkeletonMinimalPerf.default 204 195 1.05:1
BoxMinimalPerf.default 199 191 1.04:1
ChatMinimalPerf.default 447 431 1.04:1
DropdownManyItemsPerf.default 411 395 1.04:1
GridMinimalPerf.default 190 182 1.04:1
RadioGroupMinimalPerf.default 264 253 1.04:1
TableManyItemsPerf.default 1109 1070 1.04:1
VideoMinimalPerf.default 435 419 1.04:1
ButtonSlotsPerf.default 311 301 1.03:1
ChatDuplicateMessagesPerf.default 152 148 1.03:1
DividerMinimalPerf.default 209 203 1.03:1
FormMinimalPerf.default 217 211 1.03:1
PopupMinimalPerf.default 348 338 1.03:1
DialogMinimalPerf.default 451 441 1.02:1
MenuButtonMinimalPerf.default 951 929 1.02:1
RefMinimalPerf.default 109 107 1.02:1
StatusMinimalPerf.default 391 384 1.02:1
AvatarMinimalPerf.default 106 105 1.01:1
CardMinimalPerf.default 303 300 1.01:1
ChatWithPopoverPerf.default 191 190 1.01:1
CheckboxMinimalPerf.default 1098 1091 1.01:1
LayoutMinimalPerf.default 200 199 1.01:1
ListCommonPerf.default 376 373 1.01:1
ListNestedPerf.default 319 316 1.01:1
LoaderMinimalPerf.default 189 187 1.01:1
ProviderMinimalPerf.default 201 199 1.01:1
SegmentMinimalPerf.default 197 195 1.01:1
SplitButtonMinimalPerf.default 2277 2260 1.01:1
CustomToolbarPrototype.default 1457 1437 1.01:1
AttachmentSlotsPerf.default 655 655 1:1
DatepickerMinimalPerf.default 3554 3549 1:1
EmbedMinimalPerf.default 1864 1869 1:1
ImageMinimalPerf.default 221 221 1:1
InputMinimalPerf.default 529 527 1:1
LabelMinimalPerf.default 210 210 1:1
MenuMinimalPerf.default 492 490 1:1
TreeMinimalPerf.default 473 472 1:1
AnimationMinimalPerf.default 296 298 0.99:1
ButtonOverridesMissPerf.default 645 650 0.99:1
ItemLayoutMinimalPerf.default 686 692 0.99:1
ProviderMergeThemesPerf.default 618 625 0.99:1
IconMinimalPerf.default 373 377 0.99:1
TableMinimalPerf.default 235 237 0.99:1
ListMinimalPerf.default 305 311 0.98:1
ListWith60ListItems.default 349 356 0.98:1
SliderMinimalPerf.default 714 726 0.98:1
TextMinimalPerf.default 190 194 0.98:1
ToolbarMinimalPerf.default 522 531 0.98:1
CarouselMinimalPerf.default 255 265 0.96:1
TooltipMinimalPerf.default 1229 1282 0.96:1

@fabricteam
Copy link
Collaborator

fabricteam commented May 20, 2024

🕵 FluentUIV0 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented May 20, 2024

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 644 633 5000
Breadcrumb mount 1726 1729 1000
Checkbox mount 1755 1692 5000
CheckboxBase mount 1495 1514 5000
ChoiceGroup mount 2966 3057 5000
ComboBox mount 678 682 1000
CommandBar mount 6641 6778 1000
ContextualMenu mount 14542 15089 1000
DefaultButton mount 814 808 5000
DetailsRow mount 2211 2248 5000
DetailsRowFast mount 2221 2244 5000
DetailsRowNoStyles mount 2102 2083 5000
Dialog mount 2848 2835 1000
DocumentCardTitle mount 221 247 1000
Dropdown mount 2017 1956 5000
FocusTrapZone mount 1153 1165 5000
FocusZone mount 1113 1098 5000
GroupedList mount 42643 42701 2
GroupedList virtual-rerender 18547 20750 2
GroupedList virtual-rerender-with-unmount 51688 52747 2
GroupedListV2 mount 246 226 2
GroupedListV2 virtual-rerender 219 220 2
GroupedListV2 virtual-rerender-with-unmount 228 241 2
IconButton mount 1148 1137 5000
Label mount 354 350 5000
Layer mount 2800 2753 5000
Link mount 396 402 5000
MenuButton mount 994 1004 5000
MessageBar mount 21957 21747 5000
Nav mount 2077 2135 1000
OverflowSet mount 808 789 5000
Panel mount 1859 1868 1000
Persona mount 748 766 1000
Pivot mount 892 900 1000
PrimaryButton mount 946 938 5000
Rating mount 4725 4632 5000
SearchBox mount 913 954 5000
Shimmer mount 1942 1922 5000
Slider mount 1346 1326 5000
SpinButton mount 3051 3020 5000
Spinner mount 407 404 5000
SplitButton mount 1872 1895 5000
Stack mount 414 417 5000
StackWithIntrinsicChildren mount 866 888 5000
StackWithTextChildren mount 2696 2644 5000
SwatchColorPicker mount 6563 6497 5000
TagPicker mount 1494 1493 5000
Text mount 398 388 5000
TextField mount 973 968 5000
ThemeProvider mount 845 866 5000
ThemeProvider virtual-rerender 603 612 5000
ThemeProvider virtual-rerender-with-unmount 1288 1312 5000
Toggle mount 609 627 5000
buttonNative mount 190 193 5000

@fabricteam
Copy link
Collaborator

🕵 fluentuiv8 No visual regressions between this PR and main

@Hotell Hotell marked this pull request as ready for review May 21, 2024 13:18
@Hotell Hotell requested review from a team, sopranopillow and micahgodbolt as code owners May 21, 2024 13:18
@tudorpopams tudorpopams self-requested a review May 22, 2024 12:04
@Hotell Hotell merged commit 99f36fd into microsoft:master May 22, 2024
22 checks passed
@Hotell Hotell deleted the type-checking-perf/apply/apps branch May 22, 2024 15:30
miroslavstastny pushed a commit to miroslavstastny/fluentui that referenced this pull request Jun 14, 2024
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.

5 participants