Skip to content

Conversation

eps1lon
Copy link
Collaborator

@eps1lon eps1lon commented Oct 5, 2025

Fixes #34693

When we commit in development, React will diff objects to check if they might be referentially equal and add a hint that the object should be memoized. If they're unequal, React will show a diff.

However, we attempted to diff the full object which can be problematic for wide objects or, like in the original report, large Arrays.

With this we just bail out after 100 properties. Ideally, we'd have different counters for how many properties we check and how many diffed properties we print. Checking 10k properties would make sense. Adding a diff for 10k properties does not.

Test plan

@meta-cla meta-cla bot added the CLA Signed label Oct 5, 2025
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Oct 5, 2025
@react-sizebot
Copy link

react-sizebot commented Oct 5, 2025

Comparing: 3b2a398...fd3c09d

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 = 536.14 kB 536.14 kB = 94.81 kB 94.81 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 = 663.96 kB 663.96 kB = 117.04 kB 117.04 kB
facebook-www/ReactDOM-prod.classic.js = 687.83 kB 687.83 kB = 121.08 kB 121.08 kB
facebook-www/ReactDOM-prod.modern.js = 678.26 kB 678.26 kB = 119.44 kB 119.43 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-client/cjs/react-client-flight.development.js +0.55% 170.56 kB 171.51 kB +0.63% 29.68 kB 29.87 kB
oss-stable/react-client/cjs/react-client-flight.development.js +0.55% 170.59 kB 171.53 kB +0.61% 29.71 kB 29.89 kB
oss-experimental/react-client/cjs/react-client-flight.development.js +0.55% 171.68 kB 172.63 kB +0.62% 29.90 kB 30.09 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.54% 175.15 kB 176.10 kB +0.60% 30.73 kB 30.92 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.54% 175.20 kB 176.15 kB +0.60% 30.76 kB 30.94 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.54% 175.75 kB 176.69 kB +0.66% 31.13 kB 31.33 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.54% 175.75 kB 176.69 kB +0.66% 31.13 kB 31.33 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.browser.development.js +0.54% 176.31 kB 177.25 kB +0.61% 30.95 kB 31.14 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.edge.development.js +0.53% 176.87 kB 177.82 kB +0.61% 31.35 kB 31.54 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.53% 177.12 kB 178.06 kB +0.63% 31.17 kB 31.36 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.53% 177.17 kB 178.11 kB +0.62% 31.19 kB 31.39 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.browser.development.js +0.53% 178.27 kB 179.22 kB +0.60% 31.39 kB 31.58 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.53% 178.96 kB 179.90 kB +0.62% 31.63 kB 31.82 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.53% 178.96 kB 179.90 kB +0.62% 31.63 kB 31.82 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.53% 178.98 kB 179.92 kB +0.62% 31.64 kB 31.84 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.53% 178.98 kB 179.92 kB +0.62% 31.64 kB 31.84 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.53% 179.69 kB 180.64 kB +0.63% 31.64 kB 31.84 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.53% 179.74 kB 180.69 kB +0.63% 31.67 kB 31.87 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +0.52% 180.08 kB 181.03 kB +0.61% 31.84 kB 32.04 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0.52% 180.10 kB 181.05 kB +0.61% 31.86 kB 32.05 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.52% 180.21 kB 181.16 kB +0.64% 31.78 kB 31.98 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.52% 180.21 kB 181.16 kB +0.64% 31.78 kB 31.98 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.52% 180.31 kB 181.26 kB +0.62% 31.81 kB 32.01 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.52% 180.36 kB 181.31 kB +0.62% 31.84 kB 32.03 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +0.52% 180.85 kB 181.79 kB +0.60% 31.87 kB 32.07 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-client.node.development.js +0.52% 181.30 kB 182.25 kB +0.60% 32.01 kB 32.20 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0.52% 181.47 kB 182.41 kB +0.61% 32.04 kB 32.23 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.52% 181.89 kB 182.83 kB +0.62% 31.83 kB 32.03 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.52% 181.89 kB 182.83 kB +0.62% 31.83 kB 32.03 kB
oss-experimental/react-server-dom-parcel/cjs/react-server-dom-parcel-client.node.development.js +0.52% 182.98 kB 183.93 kB +0.60% 32.05 kB 32.25 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.51% 183.59 kB 184.54 kB +0.62% 32.10 kB 32.29 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.51% 183.59 kB 184.54 kB +0.62% 32.10 kB 32.29 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0.51% 184.68 kB 185.63 kB +0.61% 32.32 kB 32.52 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.51% 185.00 kB 185.95 kB +0.62% 32.35 kB 32.55 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.51% 185.00 kB 185.95 kB +0.62% 32.35 kB 32.55 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.51% 185.02 kB 185.97 kB +0.62% 32.36 kB 32.56 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.51% 185.02 kB 185.97 kB +0.62% 32.36 kB 32.56 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +0.51% 186.09 kB 187.04 kB +0.59% 32.58 kB 32.77 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0.51% 186.12 kB 187.06 kB +0.60% 32.59 kB 32.78 kB
oss-stable-semver/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.40% 221.18 kB 222.05 kB +0.46% 48.85 kB 49.07 kB
oss-stable/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.40% 221.20 kB 222.08 kB +0.45% 48.87 kB 49.10 kB
oss-experimental/react-server-dom-esm/esm/react-server-dom-esm-client.browser.development.js +0.39% 222.58 kB 223.46 kB +0.44% 49.17 kB 49.38 kB
oss-stable-semver/react-art/cjs/react-art.development.js +0.21% 656.30 kB 657.68 kB +0.27% 103.14 kB 103.42 kB
oss-stable/react-art/cjs/react-art.development.js +0.21% 656.38 kB 657.75 kB +0.27% 103.16 kB 103.44 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.development.js +0.21% 660.79 kB 662.16 kB +0.26% 104.46 kB 104.73 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js +0.21% 660.81 kB 662.19 kB +0.26% 104.46 kB 104.73 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js +0.21% 660.86 kB 662.24 kB +0.26% 104.48 kB 104.76 kB

Generated by 🚫 dangerJS against fd3c09d

@eps1lon eps1lon force-pushed the sebbie/10-05-_fiber_bail_out_of_diffing_wide_objects_and_arrays branch 4 times, most recently from 6413af5 to 25ba6e1 Compare October 5, 2025 14:49
@eps1lon eps1lon requested a review from sebmarkbage October 5, 2025 14:50
@eps1lon eps1lon marked this pull request as ready for review October 5, 2025 14:50
@eps1lon eps1lon force-pushed the sebbie/10-05-_fiber_bail_out_of_diffing_wide_objects_and_arrays branch from 25ba6e1 to 3d4a615 Compare October 5, 2025 22:21
@eps1lon eps1lon force-pushed the sebbie/10-05-_fiber_bail_out_of_diffing_wide_objects_and_arrays branch from 3d4a615 to fd3c09d Compare October 5, 2025 22:22
@eps1lon eps1lon merged commit 1be3ce9 into main Oct 5, 2025
241 checks passed
@eps1lon eps1lon deleted the sebbie/10-05-_fiber_bail_out_of_diffing_wide_objects_and_arrays branch October 5, 2025 23:14
github-actions bot pushed a commit that referenced this pull request Oct 5, 2025
github-actions bot pushed a commit that referenced this pull request Oct 5, 2025
github-actions bot pushed a commit to code/lib-react that referenced this pull request Oct 6, 2025
github-actions bot pushed a commit to code/lib-react that referenced this pull request Oct 6, 2025
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.

Bug: OOM when passing reference to big Uint8Array as component props

3 participants