-
Notifications
You must be signed in to change notification settings - Fork 27.7k
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
perf(turbo-tasks): Optionally schedule ResolveNative/ResolveTrait tasks as local tasks #69126
Merged
Conversation
This file contains 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
This was referenced Aug 21, 2024
Merged
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js bgw/schedule-local-task | Change | |
---|---|---|---|
buildDuration | 17.1s | 15.5s | N/A |
buildDurationCached | 14.6s | 12.3s | N/A |
nodeModulesSize | 418 MB | 418 MB | N/A |
nextStartRea..uration (ms) | 397ms | 399ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js bgw/schedule-local-task | Change | |
---|---|---|---|
5306-HASH.js gzip | 54 kB | 54 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 | ✓ |
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.3 kB | 34.3 kB | N/A |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
Overall change | 52.9 kB | 52.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js bgw/schedule-local-task | 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 bgw/schedule-local-task | 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 bgw/schedule-local-task | 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 bgw/schedule-local-task | Change | |
---|---|---|---|
index.html gzip | 522 B | 524 B | N/A |
link.html gzip | 538 B | 537 B | N/A |
withRouter.html gzip | 519 B | 520 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js bgw/schedule-local-task | Change | |
---|---|---|---|
edge-ssr.js gzip | 129 kB | 129 kB | N/A |
page.js gzip | 208 kB | 208 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js bgw/schedule-local-task | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 669 B | 666 B | N/A |
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 | 844 B | 844 B | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js bgw/schedule-local-task | 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 | 374 kB | 374 kB | ✓ |
app-page-exp..prod.js gzip | 130 kB | 130 kB | ✓ |
app-page-tur..prod.js gzip | 143 kB | 143 kB | ✓ |
app-page-tur..prod.js gzip | 139 kB | 139 kB | ✓ |
app-page.run...dev.js gzip | 362 kB | 362 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.8 kB | 21.8 kB | ✓ |
pages.runtim...dev.js gzip | 27.6 kB | 27.6 kB | ✓ |
pages.runtim..prod.js gzip | 21.8 kB | 21.8 kB | ✓ |
server.runti..prod.js gzip | 916 kB | 916 kB | ✓ |
Overall change | 2.47 MB | 2.47 MB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js bgw/schedule-local-task | Change | |
---|---|---|---|
0.pack gzip | 2.1 MB | 2.1 MB | N/A |
index.pack gzip | 74.1 kB | 74.3 kB | |
Overall change | 74.1 kB | 74.3 kB |
Diff details
Diff for main-HASH.js
Diff too large to display
Tests Passed |
21b123a
to
06c1a4f
Compare
bf4e236
to
5f7cee9
Compare
06c1a4f
to
a718d9e
Compare
5f7cee9
to
8237476
Compare
a718d9e
to
bcd07cf
Compare
8237476
to
694aa77
Compare
a00965d
to
7ce8ac4
Compare
694aa77
to
07ce967
Compare
9e272d6
to
52ea711
Compare
07ce967
to
f292e7b
Compare
01802b5
to
b388a14
Compare
fb37366
to
0031496
Compare
ecc0f8b
to
e6a764d
Compare
e6a764d
to
5b30b25
Compare
db2b9f7
to
5e175e3
Compare
5b30b25
to
1ae129d
Compare
1ae129d
to
91d1504
Compare
padmaia
approved these changes
Jan 17, 2025
sokra
approved these changes
Jan 17, 2025
Merge activity
|
bgw
added a commit
that referenced
this pull request
Jan 21, 2025
) Enables the `turbo-tasks/local_resolution` feature from #69126 by default.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
created-by: Turbopack team
PRs by the Turbopack team.
locked
Turbopack
Related to Turbopack with Next.js.
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.
When calling a turbo tasks function with unresolved arguments, we create a wrapper
CachedTaskType::ResolveNative
orResolveTrait
task.These are quite frequently created, and their behavior is constrained and well-defined, so we should turn them into local tasks that aren't cached in the backend.
This logic is gated behind
--features turbo-tasks/local_resolution
, as it has some known issues.Known Issues
A
RawVc::LocalOutput
can currently only be resolved within it's parent task.The long-term plan is for everything to use
ResolvedVc
, so that this assumption is safe.The short-term plan is to store local outputs more globally. Design here: https://www.notion.so/vercel/RawVc-LocalOutput-aede5f463f594ca58396eb3fdaffd865?pvs=4#02af94e3b9b64a3690f3e467abc0a47e
Test Plan
Closes PACK-3762