-
Notifications
You must be signed in to change notification settings - Fork 27.4k
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
[Turbopack] connect children in a batch when task is about to finish #74773
base: canary
Are you sure you want to change the base?
Conversation
Failing test suitesCommit: 118a2af
Expand output● ReactRefreshRequire › propagates a module that stops accepting in next version
Read more about building and testing Next.js in contributing.md.
Expand output● persistent-caching › should persistent cache loaders
● persistent-caching › should allow to change files while stopped
Read more about building and testing Next.js in contributing.md. |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
buildDuration | 16.6s | 15s | N/A |
buildDurationCached | 14.1s | 11.8s | N/A |
nodeModulesSize | 417 MB | 417 MB | N/A |
nextStartRea..uration (ms) | 420ms | 423ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
5306-HASH.js gzip | 53.5 kB | 53.4 kB | N/A |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.44 kB | 5.44 kB | N/A |
bccd1874-HASH.js gzip | 52.9 kB | 52.9 kB | N/A |
framework-HASH.js gzip | 57.5 kB | 57.5 kB | N/A |
main-app-HASH.js gzip | 241 B | 242 B | N/A |
main-HASH.js gzip | 34.2 kB | 34.2 kB | N/A |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 193 B | 193 B | ✓ |
amp-HASH.js gzip | 512 B | 510 B | N/A |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | ✓ |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 362 B | N/A |
hooks-HASH.js gzip | 393 B | 392 B | N/A |
image-HASH.js gzip | 4.57 kB | 4.57 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.34 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 323 B | 326 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.59 kB | 3.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
_buildManifest.js gzip | 749 B | 747 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
index.html gzip | 524 B | 523 B | N/A |
link.html gzip | 539 B | 538 B | N/A |
withRouter.html gzip | 520 B | 520 B | ✓ |
Overall change | 520 B | 520 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
edge-ssr.js gzip | 129 kB | 129 kB | N/A |
page.js gzip | 207 kB | 207 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 667 B | 667 B | ✓ |
middleware-r..fest.js gzip | 155 B | 156 B | N/A |
middleware.js gzip | 31.3 kB | 31.3 kB | N/A |
edge-runtime..pack.js gzip | 844 B | 844 B | ✓ |
Overall change | 1.51 kB | 1.51 kB | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
274-experime...dev.js gzip | 322 B | 322 B | ✓ |
274.runtime.dev.js gzip | 314 B | 314 B | ✓ |
app-page-exp...dev.js gzip | 372 kB | 372 kB | ✓ |
app-page-exp..prod.js gzip | 130 kB | 130 kB | ✓ |
app-page-tur..prod.js gzip | 142 kB | 142 kB | ✓ |
app-page-tur..prod.js gzip | 138 kB | 138 kB | ✓ |
app-page.run...dev.js gzip | 360 kB | 360 kB | ✓ |
app-page.run..prod.js gzip | 126 kB | 126 kB | ✓ |
app-route-ex...dev.js gzip | 37.6 kB | 37.6 kB | ✓ |
app-route-ex..prod.js gzip | 25.6 kB | 25.6 kB | ✓ |
app-route-tu..prod.js gzip | 25.6 kB | 25.6 kB | ✓ |
app-route-tu..prod.js gzip | 25.4 kB | 25.4 kB | ✓ |
app-route.ru...dev.js gzip | 39.2 kB | 39.2 kB | ✓ |
app-route.ru..prod.js gzip | 25.4 kB | 25.4 kB | ✓ |
pages-api-tu..prod.js gzip | 9.69 kB | 9.69 kB | ✓ |
pages-api.ru...dev.js gzip | 11.6 kB | 11.6 kB | ✓ |
pages-api.ru..prod.js gzip | 9.68 kB | 9.68 kB | ✓ |
pages-turbo...prod.js gzip | 21.7 kB | 21.7 kB | ✓ |
pages.runtim...dev.js gzip | 27.5 kB | 27.5 kB | ✓ |
pages.runtim..prod.js gzip | 21.7 kB | 21.7 kB | ✓ |
server.runti..prod.js gzip | 916 kB | 916 kB | ✓ |
Overall change | 2.46 MB | 2.46 MB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js sokra/lazy-connect | Change | |
---|---|---|---|
0.pack gzip | 2.09 MB | 2.09 MB | N/A |
index.pack gzip | 75.6 kB | 76.2 kB | |
Overall change | 75.6 kB | 76.2 kB |
Diff details
Diff for main-HASH.js
Diff too large to display
d449b0e
to
b15d66c
Compare
e5f13e2
to
0084ab7
Compare
b15d66c
to
585a4e0
Compare
0084ab7
to
f34b63c
Compare
585a4e0
to
cac5701
Compare
f34b63c
to
2267156
Compare
cac5701
to
2d17da4
Compare
2267156
to
366bcfb
Compare
2d17da4
to
b3d8c4d
Compare
366bcfb
to
468026c
Compare
96f4c63
to
207c7fc
Compare
468026c
to
8d560fc
Compare
Instead of directly connecting children on call, put them in a list and connect them when the parent finishes. Future children are kept active with an active_counter.
This reverts commit c24367cd58b08adacd6b0f6df4e41603345f780d.
This reverts commit 800bd00d93efb8cebf9e5ce2913675ef7ca626d2.
8d560fc
to
09299b0
Compare
09299b0
to
118a2af
Compare
What?
Connects all (new) children once the task is finished instead of each task when it's called.
To keep tasks active while the parent is in progress, but not finished, it uses the new active counter.