-
Notifications
You must be signed in to change notification settings - Fork 200
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
performance: added memory tests in packages #4228
Conversation
Lighthouse scores
What is this?Lighthouse scores comparing the documentation site built from the PR ("Branch") to that of the production documentation site ("Latest") and the build currently on Transfer Size
Request Count
|
Tachometer resultsChromeaccordion permalinkbasic-test
action-bar permalinkbasic-test
action-button permalinkbasic-test
action-group permalinkbasic-test
action-menu permalinktest-basic
test-directive permalink
test-lazy permalink
test-open-close-directive permalink
test-open-close permalink
alert-dialog permalinkbasic-test
asset permalinkbasic-test
avatar permalinktest-basic
badge permalinkbasic-test
button-group permalinkbasic-test
button permalinktest-basic
card permalinktest-basic
coachmark permalinkbasic-test
combobox permalinkbasic-test
light-dom-test permalink
dialog permalinkbasic-test
grid permalinkbasic-test
infield-button permalinkbasic-test
menu permalinktest-basic
number-field permalinkbasic-test
overlay permalinkbasic-test
directive-test permalink
element-test permalink
lazy-test permalink
picker-button permalinkbasic-test
picker permalinkbasic-test
popover permalinktest-basic
search permalinktest-basic
slider permalinktest-basic
split-button permalinkbasic-test
tags permalinkbasic-test
toast permalinktest-basic
tooltip permalinktest-basic
test-directive permalink
test-element permalink
test-lazy permalink
truncated permalinkbasic-test
Firefoxaccordion permalinkbasic-test
action-bar permalinkbasic-test
action-button permalinkbasic-test
action-group permalinkbasic-test
action-menu permalinktest-basic
test-directive permalink
test-lazy permalink
test-open-close-directive permalink
test-open-close permalink
alert-dialog permalinkbasic-test
asset permalinkbasic-test
avatar permalinktest-basic
badge permalinkbasic-test
button-group permalinkbasic-test
button permalinktest-basic
card permalinktest-basic
coachmark permalinkbasic-test
combobox permalinkbasic-test
light-dom-test permalink
dialog permalinkbasic-test
grid permalinkbasic-test
infield-button permalinkbasic-test
menu permalinktest-basic
number-field permalinkbasic-test
overlay permalinkbasic-test
directive-test permalink
element-test permalink
lazy-test permalink
picker-button permalinkbasic-test
picker permalinkbasic-test
popover permalinktest-basic
search permalinktest-basic
slider permalinktest-basic
split-button permalinkbasic-test
tags permalinkbasic-test
toast permalinktest-basic
tooltip permalinktest-basic
test-directive permalink
test-element permalink
test-lazy permalink
truncated permalinkbasic-test
|
Great start here. Notice that the three files are now effectively the same. If there a path, similar to the Lit Dev Mode test that would allow for this boilerplate to be externalized? |
Should the structure here look to interact with the abstraction listed as To Dos in #1822? |
Yes!! I was was about to go into this next. I would like to take this up with the team to get this abstraction landed in the codebase so that we can formalize it for all the components. But the memory tests can be added in isolation for now with an empty object passed as a param for these components under To-do.. |
Yes certainly, This has now been abstracted to a testing helper called |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please confirm that the helper is applicable to the grid and menu tests that were previously available.
Grid and Menu has been refactored to use the testing helper |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Catching up to main
and then we can merge.
6cc3ef1
to
a8aa6f0
Compare
* test: added memory tests in packages * test: updated memory tests in packages * chore: asbtracted the memory profiler as a testing helper * chore: added memory tests for components * chore: update grid and menu to use testing helper * chore: added mem test for card, button and button group --------- Co-authored-by: Rajdeep Chandra <rajdeepchandra@Rajdeeps-MacBook-Pro-2.local>
* refactor(theme): adds new system attribute and deprecates theme attribute * chore(theme): made changes on theme attribute * chore: reverted THEME Key to support migrations * chore: theme registrated hard break * refactor(theme): adds new system attribute and deprecates theme attribute * chore(theme): made changes on theme attribute * chore: reverted THEME Key to support migrations * chore: theme registrated hard break * chore(theme): updated theme property to system * chore(theme): updated theme to system in sp-theme in layout * chore(theme): updated config for VRT * chore(theme): updated config for VRT from theme to system * chore: update theme property to system * fix: added spectrum system variant * chore: updated theme for deprecation against system in theme files * chore: updated config to support system * chore: updated config yml * chore: updated config yml * chore: updated config yml * chore: undo system changes in stories * chore: updated runner utils * chore: review to run with theme * chore(theme): updated command-line arguments to ue system instea do f theme * chore(theme): updated command-line arguments to ue system instea do f theme * chore(theme): updated and cleaned up reduntant theme definitions with system * chore: added theme fallback to the storydecotrator render * chore: added system flag in the create review site job in CI * chore: added system flag in the create review site job in CI * chore: updated config to include system * chore: removed classic from system variant * chore: removed classic from system variant * chore: added system in parameters in config * chore: added system in parameters in config * chore: added system in parameters in config * chore: added system in parameters in config * chore: added system in parameters in config * chore: added theme in parameters in config * chore: reverted to theme in currentStyles * chore: update styles for both system/theme changes * chore: fixed updating theme when system value is not there * chore: added t theme coverage tests * chore: updated doc on prperty theme * chore: updated golden image cache * chore: updated golden image cache * chore: check added to update system for theme only attribute during deprecation * chore: rebased to systems pr * feat: added s2 theme to storyDecorator * chore: added s2 to documentation site * chore: added spectrum-two to the visual testing pipeline * chore: added s2 in web-test-util * chore: added s2 theme to vrts * chore: testing if vrts run * chore: added spectrum-two-tokens-config in package.json * chore: removed extra console log and updated tokens * chore: trying s2 as a theme in vrt instead of spectrum-two * chore: updated config * chore: testing a hacky fix for s2 vrts * chore: updated button and fieldlable to s2 * chore: added core.ts to import theme helpers inside spectrum-two * chore: spectrum-two core export * chore: testing if updating the global vars fixes the build * chore: revert back css updates for button and field-label * chore(styles): reapply some poorly cached build output (#4232) * performance: added memory tests in packages (#4228) * test: added memory tests in packages * test: updated memory tests in packages * chore: asbtracted the memory profiler as a testing helper * chore: added memory tests for components * chore: update grid and menu to use testing helper * chore: added mem test for card, button and button group --------- Co-authored-by: Rajdeep Chandra <rajdeepchandra@Rajdeeps-MacBook-Pro-2.local> * fix(coachmark): add "step-count" slot for custom/internationalized pagination content (#4215) * chore(coachmark): added separator property * chore(coachmark): updated tests * chore(coachmark): updated golden image cache * fix(coachmark): localized the step count * chore(coachmark): updated golden image cache * chore(coachmark): update readme and coachmark to default to english * chore(coachmark): removed separator from the props * chore(coachmark): updated to check for 1 of 4 stepcount context * chore(coachmark): updated golden image cache * chore(coachmark): added locallixation story for step count * chore(coachmark): updated golden image cache * chore(coachmark): update readme to include slot for docs site --------- Co-authored-by: Rajdeep Chandra <rajdeepchandra@Rajdeeps-MacBook-Pro-2.local> * chore: bump the commitlint-ecosystem group with 2 updates (#4219) Bumps the commitlint-ecosystem group with 2 updates: [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) and [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional). Updates `@commitlint/cli` from 19.0.1 to 19.2.1 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.2.1/@commitlint/cli) Updates `@commitlint/config-conventional` from 19.0.0 to 19.1.0 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.1.0/@commitlint/config-conventional) --- updated-dependencies: - dependency-name: "@commitlint/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: commitlint-ecosystem - dependency-name: "@commitlint/config-conventional" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: commitlint-ecosystem ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * test: update benchmarking to configure "end" as "updateComplete" or "paint" * fix(shared): ensure the "updateComplete" in Focusable is stable * chore: release new versions #publish * chore: bump webpack-dev-server from 5.0.2 to 5.0.4 Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.0.2 to 5.0.4. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](webpack/webpack-dev-server@v5.0.2...v5.0.4) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump markdown-it from 14.0.0 to 14.1.0 Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 14.0.0 to 14.1.0. - [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md) - [Commits](markdown-it/markdown-it@14.0.0...14.1.0) --- updated-dependencies: - dependency-name: markdown-it dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump fs-extra from 11.1.1 to 11.2.0 Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.1.1 to 11.2.0. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](jprichardson/node-fs-extra@11.1.1...11.2.0) --- updated-dependencies: - dependency-name: fs-extra dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * chore(picker): update event bind timing * chore: release new versions #publish * fix(color-area): providing x and y attributes renders color handle correctly (#4240) * fix(color-area): providing x and y attributes renders color handle correctly * fix(color-area): minor fix * chore(menu): remove deprecated CSS file (#4249) Co-authored-by: rmanole <rmanole@adobe.com> * fix(combobox): correct package.json listings * chore: bump webpack from 5.90.3 to 5.91.0 Bumps [webpack](https://github.com/webpack/webpack) from 5.90.3 to 5.91.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](webpack/webpack@v5.90.3...v5.91.0) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump prettier-plugin-package from 1.3.0 to 1.4.0 Bumps [prettier-plugin-package](https://github.com/shellscape/prettier-plugin-package) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/shellscape/prettier-plugin-package/releases) - [Commits](shellscape/prettier-plugin-package@v1.3.0...v1.4.0) --- updated-dependencies: - dependency-name: prettier-plugin-package dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump @types/react from 18.2.15 to 18.2.75 Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.15 to 18.2.75. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump protobufjs from 7.2.4 to 7.2.6 Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.2.4 to 7.2.6. - [Release notes](https://github.com/protobufjs/protobuf.js/releases) - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md) - [Commits](protobufjs/protobuf.js@protobufjs-v7.2.4...protobufjs-v7.2.6) --- updated-dependencies: - dependency-name: protobufjs dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump @11ty/eleventy in the eleventy-ecosystem group Bumps the eleventy-ecosystem group with 1 update: [@11ty/eleventy](https://github.com/11ty/eleventy). Updates `@11ty/eleventy` from 3.0.0-alpha.5 to 3.0.0-alpha.6 - [Release notes](https://github.com/11ty/eleventy/releases) - [Changelog](https://github.com/11ty/eleventy/blob/main/docs/release-instructions.md) - [Commits](https://github.com/11ty/eleventy/commits) --- updated-dependencies: - dependency-name: "@11ty/eleventy" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: eleventy-ecosystem ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump tar-stream from 3.1.6 to 3.1.7 Bumps [tar-stream](https://github.com/mafintosh/tar-stream) from 3.1.6 to 3.1.7. - [Commits](mafintosh/tar-stream@v3.1.6...v3.1.7) --- updated-dependencies: - dependency-name: tar-stream dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * chore: updated golden image hash * chore: updated golden image hash * chore: added sideeffectful registration of theme and removed lightest and darkest theme e examples * chore: Configure Renovate (#4248) * Add renovate.json * chore: update renovate config --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Westbrook Johnson <wesjohns@adobe.com> * chore: update dependency rollup to v4.16.2 (#4288) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: bump @11ty/eleventy in the eleventy-ecosystem group (#4291) Bumps the eleventy-ecosystem group with 1 update: [@11ty/eleventy](https://github.com/11ty/eleventy). Updates `@11ty/eleventy` from 3.0.0-alpha.6 to 3.0.0-alpha.7 - [Release notes](https://github.com/11ty/eleventy/releases) - [Changelog](https://github.com/11ty/eleventy/blob/main/docs/release-instructions.md) - [Commits](https://github.com/11ty/eleventy/commits/v3.0.0-alpha.7) --- updated-dependencies: - dependency-name: "@11ty/eleventy" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: eleventy-ecosystem ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump the commitlint-ecosystem group with 2 updates (#4290) Bumps the commitlint-ecosystem group with 2 updates: [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) and [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional). Updates `@commitlint/cli` from 19.2.1 to 19.3.0 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.3.0/@commitlint/cli) Updates `@commitlint/config-conventional` from 19.1.0 to 19.2.2 - [Release notes](https://github.com/conventional-changelog/commitlint/releases) - [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md) - [Commits](https://github.com/conventional-changelog/commitlint/commits/v19.2.2/@commitlint/config-conventional) --- updated-dependencies: - dependency-name: "@commitlint/cli" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: commitlint-ecosystem - dependency-name: "@commitlint/config-conventional" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: commitlint-ecosystem ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: update chromedriver (#4293) * chore: use latest playwright (#4295) * chore: use latest playwright * ci: update golden images cache * chore: updated golden image hash * chore: fixed merge conflicts * chore: fixed merge conflicts * chore: use system instead of theme in s2 * chore: externalised process spectrum script and update golden image hash * chore: normalized spectrum-two var naming usage * chore: updated golden image hash * chore: testing something * chore: freshly processed tokens after cleaning everything * chore: fixed the generate-tokens script * chore: updated golden image hash * chore: updated golden image hash * chore: normalized the classic theme to spectrum * chore: updating baseline for spectrum * chore: updated golden image hash * chore: updated golden image hash * chore: removed lightest and darkest theme for spectrum-two * chore: fixed the ci config * chore: updated golden image hash * chore: fixed broken sidenav for vrts site * chore: added devmode warning for S2 theme * chore: show devmode warning on using s2 theme only in devmode * chore: added devmode tests for code coverage * chore: updated devmode tests for theme * chore: update tests for theme * chore: updated golden image cache * chore: updated golden image cache --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Josh Johnson <jnjosh@adobe.com> Co-authored-by: Rajdeep Chandra <rajdeepchandra@Rajdeeps-MacBook-Pro-2.local> Co-authored-by: Westbrook Johnson <wesjohns@adobe.com> Co-authored-by: Rajdeep Chandra <rajrock38@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Westbrook Johnson <westbrook.johnson@gmail.com> Co-authored-by: Piyush Vashisht <piyush17303@iiitd.ac.in> Co-authored-by: Roxana Burduja <13311865+Rocss@users.noreply.github.com> Co-authored-by: rmanole <rmanole@adobe.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Objective
The objective of this RFC is to propose a standardised approach for adding memory tests to each package in the component library using Chrome's Performance API, specifically the
measureUserAgentSpecificMemory()
method.refs #3722
Background
Memory leaks in web applications can lead to performance issues and degraded user experience. By adding memory tests to each package in the component library, we can proactively identify and fix potential memory leaks, ensuring the overall stability and performance of the library.
Proposed Solution
Implementation of Memory Tests
measureUserAgentSpecificMemory()
method from the Chrome Performance API.- Create a test scenario that triggers the component's functionality.
- Measure the memory usage before and after the test scenario.
- Calculate the memory usage difference (DOM and JavaScript) to identify any memory leaks.
Test Structure
- Setup: Prepare the environment for the test.
- Execution: Trigger the component's functionality.
- Measurement: Measure the memory usage before and after the test.
- Assertion: Verify that the memory usage difference is within an acceptable range.
Test Helper Function
usedHeapMB()
will be used to measure the memory usage.usedHeapMB()
function will:- Call
measureUserAgentSpecificMemory()
to get the memory sample.- Parse the memory sample to extract the memory usage breakdown (DOM, JavaScript).
- Return the memory usage breakdown in megabytes.
Integration with Testing Framework
@open-wc/testing
used for testing the SWC component library.For more details on this experiment please go through this RFC
Related Issue:
Building on top of #3721
How has this been tested?
Screenshots (if appropriate)
Types of changes
Checklist
Best practices
This repository uses conventional commit syntax for each commit message; note that the GitHub UI does not use this by default so be cautious when accepting suggested changes. Avoid the "Update branch" button on the pull request and opt instead for rebasing your branch against
main
.