-
Notifications
You must be signed in to change notification settings - Fork 28.3k
perf(turbopack/swc): Add icf to builds, reducing binary size #75497
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
base: bgw/build-config-cleanup
Are you sure you want to change the base?
Conversation
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
9e8cc5c
to
8ea3c9e
Compare
Failing test suitesCommit: 428b83d
Expand output● rewrite-headers › middleware rewrite external RSC (/hello/vercel) › should have the expected headers
● rewrite-headers › middleware rewrite external Prefetch RSC (/hello/vercel) › should have the expected headers
Read more about building and testing Next.js in contributing.md. |
Stats from current PRDefault BuildGeneral
Client Bundles (main, webpack)
Legacy Client Bundles (polyfills)
Client Pages
Client Build Manifests
Rendered Page Sizes
Edge SSR bundle Size
Middleware size
Next Runtimes
build cache
Diff detailsDiff for main-HASH.jsDiff too large to display Diff for app-page-exp..ntime.dev.jsDiff too large to display Diff for app-page.runtime.dev.jsDiff too large to display |
049426a
to
d6a29f4
Compare
Decreases macos binary size by ~4.1%, and linux binary size by ~1.5% on arm64.
Unlike LTO, this does not appear to have any meaningful impact on build times.
Rustc reported some minor benefit to execution time (better code cache effects) when they enabled this, though I suspect it's too small to easily measure.
I'm only enabling this on the release builds used by CI. Release builds made with some other scripts, like
pack-next
will not do this.