Skip to content

[Flight] Flush performance track once we have no more pending chunks #33719

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

Merged
merged 2 commits into from
Jul 7, 2025

Conversation

sebmarkbage
Copy link
Collaborator

@sebmarkbage sebmarkbage commented Jul 7, 2025

Stacked on #33718. Alternative to #33716.

The issue with flushing the Server Components track in its current form is that we need to decide how long to wait before flushing whatever we have. That's because the root's end time will be determined by the end time of that last child.

However, if a child isn't actually used then we don't necessarily need to include it in the Server Components track since it wasn't blocking the initial render.

This waits for 100ms after the last pending chunk is resolved and if nothing is invoking any more lazy initializers after that then we log the Server Components track with the information we have at that point. We also don't eagerly initialize any chunks that wasn't already initialized so if nothing was rendered, then nothing will be logged.

This is somewhat an artifact of the current visualization. If we did another transposed form we wouldn't necessarily need to wait until the end and can log things as they're discovered.

@sebmarkbage sebmarkbage requested a review from unstubbable July 7, 2025 04:39
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Jul 7, 2025
@react-sizebot
Copy link

react-sizebot commented Jul 7, 2025

Comparing: 7cafeff...50d4f56

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB +0.16% 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 530.50 kB 530.50 kB = 93.66 kB 93.66 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB +0.16% 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 655.04 kB 655.04 kB = 115.35 kB 115.35 kB
facebook-www/ReactDOM-prod.classic.js = 675.12 kB 675.12 kB = 118.77 kB 118.77 kB
facebook-www/ReactDOM-prod.modern.js = 665.54 kB 665.54 kB = 117.13 kB 117.13 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable-semver/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.43% 150.59 kB 151.23 kB +0.63% 34.91 kB 35.13 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.43% 150.61 kB 151.26 kB +0.64% 34.94 kB 35.16 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.34% 109.08 kB 109.45 kB +0.52% 20.31 kB 20.42 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.34% 109.13 kB 109.50 kB +0.53% 20.34 kB 20.45 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.33% 110.22 kB 110.59 kB +0.53% 20.38 kB 20.49 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.33% 110.27 kB 110.64 kB +0.53% 20.41 kB 20.51 kB
oss-stable-semver/react-client/cjs/react-client-flight.development.js +0.33% 110.68 kB 111.05 kB +0.53% 19.99 kB 20.10 kB
oss-stable/react-client/cjs/react-client-flight.development.js +0.33% 110.71 kB 111.07 kB +0.54% 20.01 kB 20.12 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.33% 111.26 kB 111.63 kB +0.52% 20.71 kB 20.81 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.33% 111.31 kB 111.68 kB +0.52% 20.73 kB 20.84 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.33% 111.82 kB 112.19 kB +0.51% 20.84 kB 20.95 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.33% 111.87 kB 112.24 kB +0.51% 20.87 kB 20.98 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.32% 113.37 kB 113.73 kB +0.49% 21.06 kB 21.17 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.32% 113.37 kB 113.73 kB +0.49% 21.06 kB 21.17 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.32% 114.46 kB 114.83 kB +0.48% 21.35 kB 21.45 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.32% 114.46 kB 114.83 kB +0.48% 21.35 kB 21.45 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.32% 115.93 kB 116.30 kB +0.46% 21.53 kB 21.63 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.32% 115.93 kB 116.30 kB +0.46% 21.53 kB 21.63 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.31% 117.50 kB 117.87 kB +0.47% 21.81 kB 21.92 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.31% 117.50 kB 117.87 kB +0.47% 21.81 kB 21.92 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.31% 117.59 kB 117.96 kB +0.47% 21.85 kB 21.95 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.31% 117.59 kB 117.96 kB +0.47% 21.85 kB 21.95 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.31% 118.80 kB 119.17 kB +0.48% 22.02 kB 22.12 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.31% 118.80 kB 119.17 kB +0.48% 22.02 kB 22.12 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.30% 121.51 kB 121.87 kB +0.46% 22.31 kB 22.42 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.30% 121.51 kB 121.87 kB +0.46% 22.31 kB 22.42 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.30% 122.84 kB 123.20 kB +0.47% 22.56 kB 22.67 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.30% 122.84 kB 123.20 kB +0.47% 22.56 kB 22.67 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.29% 151.49 kB 151.94 kB +0.42% 27.14 kB 27.26 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.29% 152.64 kB 153.08 kB +0.38% 27.17 kB 27.27 kB
oss-experimental/react-client/cjs/react-client-flight.development.js +0.29% 153.07 kB 153.51 kB +0.41% 26.82 kB 26.93 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.29% 153.68 kB 154.13 kB +0.42% 27.53 kB 27.65 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.29% 154.24 kB 154.68 kB +0.41% 27.68 kB 27.79 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.29% 155.72 kB 156.17 kB +0.43% 27.90 kB 28.02 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.28% 156.81 kB 157.26 kB +0.39% 28.24 kB 28.35 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.28% 158.28 kB 158.73 kB +0.40% 28.36 kB 28.48 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.28% 159.85 kB 160.30 kB +0.41% 28.71 kB 28.83 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.28% 159.94 kB 160.39 kB +0.39% 28.75 kB 28.86 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.28% 161.15 kB 161.60 kB +0.40% 28.85 kB 28.96 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.27% 163.86 kB 164.30 kB +0.39% 29.14 kB 29.26 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.27% 165.19 kB 165.64 kB +0.39% 29.39 kB 29.50 kB
oss-experimental/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.24% 187.27 kB 187.72 kB +0.23% 41.87 kB 41.97 kB

Generated by 🚫 dangerJS against 50d4f56

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants