Conversation
…ement package - Deleted the benchmark script `run-benchmarks.js` and its associated configurations. - Removed utility functions and data generation logic from `utilities.ts`. - Eliminated benchmark test files related to observable, rendering, and templating. - Cleaned up package.json by removing unused dependencies and scripts.
- Introduced a new benchmark suite for testing various FAST element functionalities. - Created multiple benchmark scenarios including basic rendering, observable properties, repeat directives, and conditional rendering. - Implemented a harness for running benchmarks and collecting performance metrics using CDP tracing. - Added HTML and TypeScript files for each benchmark scenario, ensuring a comprehensive testing approach. - Included utilities for generating random data and managing DOM trees for benchmarks. - Configured Vite for building and serving the benchmark suite.
janechu
approved these changes
Feb 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
📖 Description
Introduces a new benchmark package with a Playwright + Chrome DevTools trace-based benchmarking harness, replacing the previous
@tensile-perf/web-componentssetup embedded infast-element.Benchmark scenarios (basic, observable, render, repeat-reverse, repeat-shift, when-basic, when-conditional, when-switch) have been migrated from inline
.bench.tsfiles infast-elementto standalone suites under the newpackages/benchpackage. Each suite runs in a real browser via Playwright, collects trace data through CDP, and reports timing stats (min/median/mean/p95/max) for scripting, layout, style recalc, and paint.Also adds
@types/parse5as a dev dependency forfast-ssrto fix the build.👩💻 Reviewer Notes
private: trueand not published — it's a dev-only tool for local and CI performance testing.npm run test) or a production build (BENCH_DIST=true npm run test).server/subdirectory is a self-contained static file server for serving the Vite build output.📑 Test Plan
npm run test -w @microsoft/fast-bench(orcd packages/bench && npm run test) to execute the benchmark suite locally and confirm output tables print correctly.npm run build -w @microsoft/fast-ssrto verify the@types/parse5fix resolves the build error.✅ Checklist
General
$ npm run change⏭ Next Steps