Repository navigation
Conversation
Run the charts benchmarks with @mui/internal-benchmark's benchmark CLI, which builds both sides in the same job and compares them on paired rounds. Pull requests run a smoke file with one case per kind of chart.
Deploy previewBundle size
PerformanceNo regressions in 35 benchmarks · ran 7m 55s · details Check out the code infra dashboard for more information about this PR. |
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
The WebGL benchmarks waited at least 300ms per sample, and their render and paint metrics ended before the chart drew. Observe the draw calls instead: after a canvas's first draw pass, a marker's paint is recorded as bench:paint#webgl, and a fence times the GPU's work, without blocking, as webgl:gpu.
In CI the GPU time is most likely software rendering's, which doesn't track a real GPU, and it varies too much from sample to sample to alarm on, while waiting for it took most of each WebGL sample.
# Conflicts: # .circleci/config.yml # pnpm-lock.yaml
Master runs every chart's benchmark file; a pull request runs the smoke file and the files of the charts whose source folder it changes. The smoke cases keep their names, so they read as the same benchmarks as in their chart's file. Also removes the Vitest setup files the port left behind.
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
# Conflicts: # pnpm-lock.yaml # test/performance-charts/package.json
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
6 tasks
# Conflicts: # .circleci/config.yml # pnpm-lock.yaml # test/benchmark/package.json # test/benchmark/src/charts/Heatmap/scenarios.tsx # test/benchmark/src/charts/HeatmapPremium/scenarios.tsx
…harts on helper changes
…t, cache only the baseline
Janpot
marked this pull request as ready for review
November 12, 2026 18:00
This was referenced Nov 12, 2026
This branch has not been deployed
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.
Moves the benchmarks from Vitest to the
benchmarkCLI of@mui/internal-benchmark(mui/mui-public#1898), as in mui/material-ui#49329, mui/base-ui#5974 and mui/base-ui-charts#1186.Today a pull request is compared against a master run from another machine, so unrelated changes alarm (#23939, an ARIA role: SparkLineChart +186%). The CLI builds both sides in the same job and samples them in alternating rounds in one browser.
test/performance-chartsbecomestest/benchmark(pnpm test:benchmark). Cases live insrc/<product>/scenarios.tsx; the charts' insrc/charts/<Chart>/scenarios.tsx, unchanged.src/smoke/x.bench.tsxruns all of MUI X in one page: every chart case, plus a few for Data Grid, Pickers, Tree View, Scheduler and Chat. 30 rounds each, alarming past 10%.test_benchmark, wastest_charts_benchmark) runs on every master commit against its parent, and on pull requests changingpackages/x-*(butx-codemod) against the fork point. About 7 min onmedium+; the baseline's build is cached.bench:paint#webgl.Pro and Premium components render with the license watermark on both sides: packed builds reject the test keys.