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

chore(web-components): add perf testing benchmarks #30972

Conversation

chrisdholt
Copy link
Member

Previous Behavior

n/a

New Behavior

This PR adds a framework to enable performance testing using tensile-perf for Fluent UI Web Components. Tensile-perf simulates a complex DOM and allows us to identify performance problems as they might appear "in the wild".

This PR only enables the performance testing, it does not provide the ability for this to run on Pull Requests. That work will follow.

Related Issue(s)

  • Fixes #

@chrisdholt chrisdholt requested review from a team as code owners April 5, 2024 00:12
@chrisdholt chrisdholt changed the title Users/chhol/add perf testing benchmarks chore(web-components): add perf testing benchmarks Apr 5, 2024
Copy link

codesandbox-ci bot commented Apr 5, 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.

@chrisdholt chrisdholt force-pushed the users/chhol/add-perf-testing-benchmarks branch from 933bed6 to 3de572e Compare April 5, 2024 00:30
@fabricteam
Copy link
Collaborator

fabricteam commented Apr 5, 2024

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-accordion
Accordion (including children components)
85.867 kB
25.973 kB
85.92 kB
25.987 kB
53 B
14 B
react-alert
Alert
89.69 kB
22.384 kB
89.744 kB
22.401 kB
54 B
17 B
react-avatar
Avatar
53.083 kB
14.771 kB
53.136 kB
14.785 kB
53 B
14 B
react-avatar
AvatarGroupItem
69.301 kB
19.061 kB
69.354 kB
19.078 kB
53 B
17 B
react-badge
PresenceBadge
25.796 kB
7.534 kB
25.849 kB
7.546 kB
53 B
12 B
react-button
MenuButton
41.563 kB
10.777 kB
41.616 kB
10.787 kB
53 B
10 B
react-button
SplitButton
49.992 kB
12.334 kB
50.045 kB
12.351 kB
53 B
17 B
react-checkbox
Checkbox
33.086 kB
10.344 kB
33.139 kB
10.361 kB
53 B
17 B
react-checkbox
CheckboxField
39.991 kB
12.232 kB
40.044 kB
12.241 kB
53 B
9 B
react-combobox
Combobox (including child components)
85.156 kB
27.248 kB
85.209 kB
27.263 kB
53 B
15 B
react-combobox
ComboboxField
81.573 kB
27.136 kB
81.626 kB
27.144 kB
53 B
8 B
react-combobox
Dropdown (including child components)
83.843 kB
27.006 kB
83.896 kB
27.025 kB
53 B
19 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
201.639 kB
56.262 kB
201.692 kB
56.275 kB
53 B
13 B
react-dialog
Dialog (including children components)
89.714 kB
26.667 kB
89.767 kB
26.682 kB
53 B
15 B
react-field
Field
17.668 kB
6.556 kB
17.721 kB
6.563 kB
53 B
7 B
react-infobutton
InfoButton
126.849 kB
38.704 kB
126.902 kB
38.72 kB
53 B
16 B
react-input
InputField
35.053 kB
11.114 kB
35.106 kB
11.123 kB
53 B
9 B
react-menu
Menu (including children components)
126.199 kB
38.684 kB
126.252 kB
38.699 kB
53 B
15 B
react-menu
Menu (including selectable components)
129.268 kB
39.207 kB
129.321 kB
39.216 kB
53 B
9 B
react-persona
Persona
59.921 kB
16.658 kB
59.974 kB
16.672 kB
53 B
14 B
react-progress
ProgressField
23.868 kB
8.388 kB
23.921 kB
8.394 kB
53 B
6 B
react-radio
Radio
32.671 kB
10.599 kB
32.724 kB
10.608 kB
53 B
9 B
react-radio
RadioGroupField
24.958 kB
9.078 kB
25.011 kB
9.086 kB
53 B
8 B
react-select
Select
24.14 kB
8.298 kB
24.193 kB
8.314 kB
53 B
16 B
react-select
SelectField
33.379 kB
10.8 kB
33.432 kB
10.811 kB
53 B
11 B
react-slider
SliderField
42.917 kB
13.493 kB
42.97 kB
13.503 kB
53 B
10 B
react-spinbutton
SpinButton
45.179 kB
13.083 kB
45.232 kB
13.103 kB
53 B
20 B
react-spinbutton
SpinButtonField
54.442 kB
15.673 kB
54.495 kB
15.683 kB
53 B
10 B
react-switch
Switch
28.22 kB
8.748 kB
28.273 kB
8.781 kB
53 B
33 B
react-switch
SwitchField
35.005 kB
10.658 kB
35.058 kB
10.663 kB
53 B
5 B
react-table
DataGrid
142.96 kB
38.983 kB
143.013 kB
39 kB
53 B
17 B
react-table
Table (Primitives only)
43.771 kB
12.07 kB
43.824 kB
12.084 kB
53 B
14 B
react-table
Table as DataGrid
134.285 kB
34.462 kB
134.338 kB
34.477 kB
53 B
15 B
react-table
Table (Selection only)
82.203 kB
20.548 kB
82.256 kB
20.562 kB
53 B
14 B
react-table
Table (Sort only)
81.632 kB
20.398 kB
81.685 kB
20.411 kB
53 B
13 B
react-textarea
TextareaField
36.532 kB
11.521 kB
36.585 kB
11.532 kB
53 B
11 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
533 B
338 B
global-context
createContextSelector
554 B
348 B
priority-overflow
createOverflowManager
3.194 kB
1.315 kB
react-avatar
AvatarGroup
15.42 kB
6.138 kB
react-badge
Badge
23.78 kB
7.544 kB
react-badge
CounterBadge
24.67 kB
7.829 kB
react-button
Button
36.883 kB
9.427 kB
react-button
CompoundButton
44.058 kB
10.9 kB
react-button
ToggleButton
55.247 kB
11.342 kB
react-card
Card - All
83.371 kB
23.931 kB
react-card
Card
78.14 kB
22.44 kB
react-card
CardFooter
9.04 kB
3.793 kB
react-card
CardHeader
10.979 kB
4.506 kB
react-card
CardPreview
9.847 kB
4.14 kB
react-components
react-components: Button, FluentProvider & webLightTheme
64.085 kB
17.627 kB
react-components
react-components: FluentProvider & webLightTheme
35.049 kB
11.612 kB
react-divider
Divider
17.105 kB
6.197 kB
react-image
Image
11.259 kB
4.465 kB
react-input
Input
24.848 kB
8.173 kB
react-label
Label
9.817 kB
4.059 kB
react-link
Link
12.306 kB
5.083 kB
react-overflow
hooks only
11.214 kB
4.247 kB
react-popover
Popover
113.927 kB
35.085 kB
react-portal
Portal
11.377 kB
4.159 kB
react-portal-compat
PortalCompatProvider
6.324 kB
2.117 kB
react-positioning
usePositioning
22.857 kB
8.512 kB
react-progress
ProgressBar
13.573 kB
5.241 kB
react-provider
FluentProvider
17.116 kB
6.334 kB
react-radio
RadioGroup
14.885 kB
5.904 kB
react-slider
Slider
33.086 kB
10.576 kB
react-spinner
Spinner
20.615 kB
6.69 kB
react-text
Text - Default
12.261 kB
4.824 kB
react-text
Text - Wrappers
15.571 kB
5.245 kB
react-textarea
Textarea
26.331 kB
8.598 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
30.908 kB
6.725 kB
react-theme
Teams: Light theme
17.776 kB
5.144 kB
react-tooltip
Tooltip
45.962 kB
16.154 kB
react-utilities
SSRProvider
180 B
160 B
🤖 This report was generated against a7db7b4959230a05d7fb8d3e4012c5e0d0695434

@chrisdholt chrisdholt force-pushed the users/chhol/add-perf-testing-benchmarks branch from 98c452c to 94ce307 Compare April 5, 2024 03:04
@chrisdholt chrisdholt force-pushed the users/chhol/add-perf-testing-benchmarks branch from 94ce307 to 09249c9 Compare April 5, 2024 03:15
@fabricteam
Copy link
Collaborator

🕵 fluentui-web-components-v3 No visual regressions between this PR and main

@chrisdholt chrisdholt merged commit 9ac84d3 into microsoft:web-components-v3 Apr 5, 2024
16 checks passed
@chrisdholt chrisdholt deleted the users/chhol/add-perf-testing-benchmarks branch April 5, 2024 16:09
chrisdholt added a commit that referenced this pull request Apr 29, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit to radium-v/fluentui that referenced this pull request Apr 29, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit to radium-v/fluentui that referenced this pull request Apr 29, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit to radium-v/fluentui that referenced this pull request Apr 30, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request Apr 30, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 2, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 2, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 2, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 3, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 6, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 6, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 8, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
radium-v pushed a commit that referenced this pull request May 10, 2024
Co-authored-by: Sean Monahan <seanmonahan@microsoft.com>
Co-authored-by: Christopher Holt <=>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants