-
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): Add a 'local' option to #[turbo_tasks::function(..)]
#75259
Merged
+113
−69
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 Jan 24, 2025
refactor(turbo-tasks): Merge dynamic_call/native_call with dynamic_this_call/native_this_call
#75253
Merged
bgw
added
the
CI Bypass Graphite Optimization
Ignore Graphite CI optimizations, run the full CI suite. https://graphite.dev/docs/stacking-and-ci
label
Jan 24, 2025
— with
Graphite App
sokra
approved these changes
Jan 24, 2025
sokra
approved these changes
Jan 24, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a PR description
bgw
force-pushed
the
bgw/dedupe-this-call
branch
from
January 24, 2025 16:29
1c943c9
to
347619f
Compare
bgw
force-pushed
the
bgw/fn-local-option
branch
from
January 24, 2025 16:30
a7429b6
to
40fd0db
Compare
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js bgw/fn-local-option | Change | |
---|---|---|---|
buildDuration | 20.6s | 17.6s | N/A |
buildDurationCached | 16.6s | 13.9s | N/A |
nodeModulesSize | 419 MB | 419 MB | ✓ |
nextStartRea..uration (ms) | 455ms | 450ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js bgw/fn-local-option | Change | |
---|---|---|---|
5306-HASH.js gzip | 54.1 kB | 54.1 kB | N/A |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.46 kB | 5.46 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 | 240 B | 243 B | N/A |
main-HASH.js gzip | 34.6 kB | 34.6 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 bgw/fn-local-option | 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/fn-local-option | 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.59 kB | 4.58 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.35 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/fn-local-option | Change | |
---|---|---|---|
_buildManifest.js gzip | 748 B | 747 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js bgw/fn-local-option | Change | |
---|---|---|---|
index.html gzip | 523 B | 523 B | ✓ |
link.html gzip | 538 B | 539 B | N/A |
withRouter.html gzip | 518 B | 521 B | N/A |
Overall change | 523 B | 523 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js bgw/fn-local-option | Change | |
---|---|---|---|
edge-ssr.js gzip | 129 kB | 129 kB | N/A |
page.js gzip | 210 kB | 210 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js bgw/fn-local-option | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 671 B | 665 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/fn-local-option | 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 | 378 kB | 378 kB | ✓ |
app-page-exp..prod.js gzip | 132 kB | 132 kB | ✓ |
app-page-tur..prod.js gzip | 145 kB | 145 kB | ✓ |
app-page-tur..prod.js gzip | 141 kB | 141 kB | ✓ |
app-page.run...dev.js gzip | 365 kB | 365 kB | ✓ |
app-page.run..prod.js gzip | 128 kB | 128 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.9 kB | 21.9 kB | ✓ |
pages.runtim...dev.js gzip | 27.7 kB | 27.7 kB | ✓ |
pages.runtim..prod.js gzip | 21.9 kB | 21.9 kB | ✓ |
server.runti..prod.js gzip | 916 kB | 916 kB | ✓ |
Overall change | 2.49 MB | 2.49 MB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js bgw/fn-local-option | Change | |
---|---|---|---|
0.pack gzip | 2.11 MB | 2.11 MB | N/A |
index.pack gzip | 75.4 kB | 75.9 kB | |
Overall change | 75.4 kB | 75.9 kB |
Diff details
Diff for main-HASH.js
Diff too large to display
bgw
force-pushed
the
bgw/dedupe-this-call
branch
from
January 24, 2025 17:46
347619f
to
8439258
Compare
bgw
force-pushed
the
bgw/fn-local-option
branch
from
January 24, 2025 17:46
40fd0db
to
2a987b0
Compare
bgw
force-pushed
the
bgw/dedupe-this-call
branch
2 times, most recently
from
January 24, 2025 18:33
cfe5eb9
to
6d9a1fd
Compare
bgw
force-pushed
the
bgw/fn-local-option
branch
from
January 24, 2025 18:33
2a987b0
to
dd12daa
Compare
bgw
force-pushed
the
bgw/fn-local-option
branch
from
January 24, 2025 19:17
dd12daa
to
51a826a
Compare
bgw
force-pushed
the
graphite-base/75259
branch
from
January 24, 2025 19:17
6d9a1fd
to
66d3b9a
Compare
bgw
force-pushed
the
bgw/fn-local-option
branch
2 times, most recently
from
January 24, 2025 19:24
35fc3ed
to
0151e49
Compare
Tests Passed |
bgw
force-pushed
the
bgw/fn-local-option
branch
from
January 24, 2025 22:05
0151e49
to
0c17996
Compare
Merge activity
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CI Bypass Graphite Optimization
Ignore Graphite CI optimizations, run the full CI suite. https://graphite.dev/docs/stacking-and-ci
created-by: Turbopack team
PRs by the Turbopack team.
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.
Allows tasks to be marked as local using
#[turbo_tasks::function(local)]
.Local tasks are cached only for the lifetime of the nearest non-Local parent caller.
Local tasks do not have a unique task id, and are not shared with the backend. Instead they use the parent task's id and store data in the backend-agnostic manager.
This is useful for functions that have a low cache hit rate. Those functions could be converted to non-task functions, but that would break their function signature. This provides a mechanism for skipping caching without changing the function signature.
Local tasks are already used for argument resolution, this allows other arbitrary functions to be opted-in.
Closes PACK-3819