Skip to content
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

Track suspended time when the render doesn't commit because it suspended #31552

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

sebmarkbage
Copy link
Collaborator

When we suspend the render with delay, we won't do any more work until we get some kind of another update/ping. It's because conceptually something is suspended and then will update later. We need to highlight this period to show why it's not doing any work. We fill the empty space with "Suspended". This stops whenever the same lane group starts rendering again. Clamped by the preceeding start time/event time/update time.

Screenshot 2024-11-15 at 1 01 29 PM

Ideally we would instead start the next render and suspend the work loop at all places we suspend. In that mode this will instead show up as a very long "Render" with a "Suspended" period instead highlighted in the Components track as one component is suspended. We'll soon have that for use() but not all updates so this covers the rest.

One issue with useActionState is that it is implemented as suspending at the point of the useActionState which means that the period of the Action shows up as a suspended render instead of as an Action which happens for raw actions. This is not really how you conceptually think about it so we need some special case for useActionState. In the screenshot above, the first "Suspended" is actually awaiting an Action and the second "Suspended" is awaiting the data from it.

This stops whenever the same lane group starts rendering again.
Clamped by the preceeding start time/event time/update time.
Copy link

vercel bot commented Nov 15, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-compiler-playground ✅ Ready (Inspect) Visit Preview 💬 Add feedback Nov 15, 2024 6:14pm

@react-sizebot
Copy link

Comparing: 0480cdb...8f869e5

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 = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 509.08 kB 509.08 kB = 91.00 kB 91.00 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 514.01 kB 514.01 kB = 91.71 kB 91.71 kB
facebook-www/ReactDOM-prod.classic.js = 588.65 kB 588.65 kB = 104.18 kB 104.18 kB
facebook-www/ReactDOM-prod.modern.js = 578.91 kB 578.91 kB = 102.59 kB 102.59 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-reconciler/cjs/react-reconciler.profiling.js +0.28% 427.73 kB 428.95 kB +0.14% 69.63 kB 69.73 kB
oss-experimental/react-art/cjs/react-art.development.js +0.22% 575.01 kB 576.29 kB +0.16% 92.87 kB 93.02 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js +0.21% 657.65 kB 659.03 kB +0.17% 105.48 kB 105.66 kB

Generated by 🚫 dangerJS against 490a279

alphachart

This comment was marked as spam.

Copy link

@alphachart alphachart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

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.

5 participants