Repository navigation
perf(benchmark): add a large-app fixture for webpack and Turbopack - #899
Merged
Merged
Conversation
Every benchmark app is one page, so costs that grow with an app (import resolution, barrels, constants read across modules, work repeated per module) never show up. large-app.mjs writes 30 routes rendering 300 components through one barrel, all reading shared tokens; the devup-ui-large (webpack) and devup-ui-large-turbo rows build it. The rows are not gated until they have a calibrated baseline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The -wasm twins of the large rows build the same app with engine: 'wasm', so the native engine's gain shows at a size where extraction is a real share of the build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 of 4 tasks
Codecov Report✅ All modified and coverable lines are covered by tests. 🚀 New features to boost your workflow:
|
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.
Summary
benchmark/large-app.mjswrites 30 routes that render 300 components through one barrel (@/components). Every component reads shared tokens from another module and usesstyled,css, responsive arrays and selectors.devup-ui-large(webpack) anddevup-ui-large-turbo(Turbopack), plus-wasmtwins that build the same app withengine: 'wasm'to measure the native engine's gain at app scale. They are not gated until a baseline has been calibrated, so this PR can't fail the gate. Generation is included in the timed build, but it writes only files whose content changed (one write per row on a cold CI runner).Follow-up
Once a few runs have recorded numbers, gate the rows with
bun benchmark-check.js --write-baseline. The perf PRs that follow (resolver cache, single extraction, lazy CSS) will be measured against these rows.Test plan
🤖 Generated with Claude Code