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: add fast-benchmark #5845

Closed
6 tasks done
prudepixie opened this issue Apr 14, 2022 · 0 comments · Fixed by #5854, #5921 or #6066
Closed
6 tasks done

feat: add fast-benchmark #5845

prudepixie opened this issue Apr 14, 2022 · 0 comments · Fixed by #5854, #5921 or #6066
Assignees
Labels
epic A collection of features and tasks with a common objective. feature A new feature

Comments

@prudepixie
Copy link
Contributor

prudepixie commented Apr 14, 2022

🙋 Feature Request

Add fast-benchmark, a performance testing infrastructure to support local development and general benchmarking purposes for FAST libraries.

💁 Possible Solution

The main tool to use to run the benchmarks locally will be tachometer, it is a tool used widely for benchmarking known low-level libraries, such as lit and preact.
https://github.com/Polymer/tachometer
https://www.npmjs.com/package/tachometer

After some research, my thoughts are to have support for both:

  1. static tests: integrate Krausest tests from https://github.com/krausest/js-framework-benchmark as 'default testing suite', mirroring what preact has opted for, they only have a single library, so makes sense to reuse the same benchmarks
  2. custom tests: this is the direction lit went for, since they have multiple libraries (lit-element, lit-html.etc) that is similar to the FAST monorepo, they have opted to write customizable test for different scenarios

For FAST, it will be ideal to have both, if users don't want to invest in writing custom tests, but still want to do a sanity check, static tests could be a quick way to check for performance gains/loss. Both are good candidates to include in the CI/CD pipeline.

✅ Implementation Checklist

💻 Examples

Example test result for different versions of fast-element run with Tachometer (for context, this was a run on memory usage, tracked by window.usedJSHeapSize):

Screen Shot 2022-04-14 at 11 00 20 AM

@prudepixie prudepixie added the status:triage New Issue - needs triage label Apr 14, 2022
@prudepixie prudepixie added this to the FASTElement Future milestone Apr 14, 2022
@prudepixie prudepixie linked a pull request Apr 14, 2022 that will close this issue
9 tasks
@prudepixie prudepixie self-assigned this Apr 14, 2022
@prudepixie prudepixie added feature A new feature area:utilities epic A collection of features and tasks with a common objective. and removed status:triage New Issue - needs triage labels Apr 14, 2022
@prudepixie prudepixie linked a pull request Apr 15, 2022 that will close this issue
9 tasks
@prudepixie prudepixie linked a pull request May 25, 2022 that will close this issue
9 tasks
@prudepixie prudepixie linked a pull request Jun 14, 2022 that will close this issue
9 tasks
@prudepixie prudepixie moved this from Triage to In Progress in FAST Architecture Roadmap Jun 14, 2022
@prudepixie prudepixie mentioned this issue Jun 14, 2022
9 tasks
Repository owner moved this from In Progress to Done in FAST Architecture Roadmap Jun 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment