-
Notifications
You must be signed in to change notification settings - Fork 27.5k
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. |
bgw
changed the title
Add schedule_local_task method
draft(turbo-tasks): Add schedule_local_task method
Aug 21, 2024
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 |
bgw
force-pushed
the
bgw/stub-task-output
branch
from
August 22, 2024 00:35
21b123a
to
06c1a4f
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
August 22, 2024 00:35
bf4e236
to
5f7cee9
Compare
bgw
changed the title
draft(turbo-tasks): Add schedule_local_task method
feat(turbo-tasks): Optionally schedule ResolveNative
Aug 22, 2024
bgw
changed the title
feat(turbo-tasks): Optionally schedule ResolveNative
feat(turbo-tasks): Optionally schedule ResolveNative/ResolveTrait tasks as local tasks
Aug 22, 2024
bgw
force-pushed
the
bgw/stub-task-output
branch
from
August 29, 2024 19:50
06c1a4f
to
a718d9e
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
August 29, 2024 19:50
5f7cee9
to
8237476
Compare
bgw
force-pushed
the
bgw/stub-task-output
branch
from
August 29, 2024 22:32
a718d9e
to
bcd07cf
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
August 29, 2024 22:32
8237476
to
694aa77
Compare
bgw
changed the base branch from
bgw/stub-task-output
to
bgw/move-output-content
August 29, 2024 22:32
bgw
force-pushed
the
bgw/move-output-content
branch
from
August 30, 2024 18:00
a00965d
to
7ce8ac4
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
August 30, 2024 18:00
694aa77
to
07ce967
Compare
bgw
changed the base branch from
bgw/move-output-content
to
bgw/memory-task-cleanup
August 30, 2024 18:00
bgw
force-pushed
the
bgw/memory-task-cleanup
branch
from
September 4, 2024 00:25
9e272d6
to
52ea711
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
September 4, 2024 00:26
07ce967
to
f292e7b
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
January 15, 2025 21:53
1e51631
to
01802b5
Compare
bgw
changed the base branch from
bgw/return-values-should-be-non-local
to
graphite-base/69126
January 15, 2025 22:34
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
January 15, 2025 22:35
01802b5
to
b388a14
Compare
bgw
force-pushed
the
graphite-base/69126
branch
from
January 15, 2025 22:35
fb37366
to
0031496
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
2 times, most recently
from
January 17, 2025 03:19
ecc0f8b
to
e6a764d
Compare
bgw
changed the base branch from
bgw/vcarc-uses-operationvc
to
graphite-base/69126
January 17, 2025 04:19
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
January 17, 2025 04:20
e6a764d
to
5b30b25
Compare
bgw
force-pushed
the
graphite-base/69126
branch
from
January 17, 2025 04:20
db2b9f7
to
5e175e3
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
January 17, 2025 04:21
5b30b25
to
1ae129d
Compare
bgw
force-pushed
the
bgw/schedule-local-task
branch
from
January 17, 2025 06:07
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
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