Skip to content

Conversation

sbuggay
Copy link
Contributor

@sbuggay sbuggay commented Jul 25, 2025

Summary:
Adds an additional pragma allowing tests to specify which mode JS should run in. By default this new JS mode will match the regular selected mode, and only shows up in the title if it differs.

View (mode 🚀, jsMode 🐛)

(index) Task name Latency average (ns) Latency median (ns) Throughput average (ops/s) Throughput median (ops/s) Samples
0 'render 100 uncollapsable views' '10159906.01 ± 1.31%' '9852036.00' '99 ± 1.17%' '102' 99
1 'render 1000 uncollapsable views' '140887334.83 ± 1.46%' '139692094.50 ± 95652.50' '7 ± 1.14%' '7' 64
2 'render 100 views with large amount of props and styles' '23331150.55 ± 1.60%' '22600244.50 ± 24962.50' '43 ± 1.34%' '44' 64
3 'render 1000 views with large amount of props and styles' '273211225.98 ± 1.41%' '272005374.00 ± 115394.00' '4 ± 1.20%' '4' 64
4 'render 1500 views with large amount of props and styles' '442607142.55 ± 1.20%' '434820116.00 ± 455811.00' '2 ± 1.04%' '2' 64

View (mode 🚀)

(index) Task name Latency average (ns) Latency median (ns) Throughput average (ops/s) Throughput median (ops/s) Samples
0 'render 100 uncollapsable views' '4104493.33 ± 2.08%' '3923198.00 ± 110.00' '248 ± 1.32%' '255' 244
1 'render 1000 uncollapsable views' '87679050.92 ± 1.28%' '87123912.50 ± 5743.50' '11 ± 1.26%' '11' 64
2 'render 100 views with large amount of props and styles' '14064648.78 ± 1.90%' '13587137.00 ± 6355.00' '71 ± 1.50%' '74' 72
3 'render 1000 views with large amount of props and styles' '184107829.77 ± 0.77%' '183228851.00 ± 53144.00' '5 ± 0.77%' '5' 64
4 'render 1500 views with large amount of props and styles' '317639710.20 ± 1.17%' '310442132.00 ± 366431.00' '3 ± 1.11%' '3' 64

Changelog: [Internal]

Differential Revision: D78912257

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 25, 2025
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D78912257

sbuggay added a commit to sbuggay/react-native that referenced this pull request Jul 25, 2025
Summary:

Adds an additional pragma allowing tests to specify which mode JS should run in. By default this new JS mode will match the regular selected mode, and only shows up in the title if it differs.

### View (mode 🚀, jsMode 🐛) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '10159906.01 ± 1.31%'  | '9852036.00'               | '99 ± 1.17%'               | '102'                     | 99      |
| 1       | 'render 1000 uncollapsable views'                         | '140887334.83 ± 1.46%' | '139692094.50 ± 95652.50'  | '7 ± 1.14%'                | '7'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '23331150.55 ± 1.60%'  | '22600244.50 ± 24962.50'   | '43 ± 1.34%'               | '44'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '273211225.98 ± 1.41%' | '272005374.00 ± 115394.00' | '4 ± 1.20%'                | '4'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '442607142.55 ± 1.20%' | '434820116.00 ± 455811.00' | '2 ± 1.04%'                | '2'                       | 64      |


### View (mode 🚀) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4104493.33 ± 2.08%'   | '3923198.00 ± 110.00'      | '248 ± 1.32%'              | '255'                     | 244     |
| 1       | 'render 1000 uncollapsable views'                         | '87679050.92 ± 1.28%'  | '87123912.50 ± 5743.50'    | '11 ± 1.26%'               | '11'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '14064648.78 ± 1.90%'  | '13587137.00 ± 6355.00'    | '71 ± 1.50%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '184107829.77 ± 0.77%' | '183228851.00 ± 53144.00'  | '5 ± 0.77%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '317639710.20 ± 1.17%' | '310442132.00 ± 366431.00' | '3 ± 1.11%'                | '3'                       | 64      |

Changelog: [Internal]

Differential Revision: D78912257
@sbuggay sbuggay force-pushed the export-D78912257 branch from b5bb236 to 2fc41a1 Compare July 25, 2025 06:21
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D78912257

sbuggay added a commit to sbuggay/react-native that referenced this pull request Jul 25, 2025
Summary:
Pull Request resolved: facebook#52822

Adds an additional pragma allowing tests to specify which mode JS should run in. By default this new JS mode will match the regular selected mode, and only shows up in the title if it differs.

### View (mode 🚀, jsMode 🐛) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '10159906.01 ± 1.31%'  | '9852036.00'               | '99 ± 1.17%'               | '102'                     | 99      |
| 1       | 'render 1000 uncollapsable views'                         | '140887334.83 ± 1.46%' | '139692094.50 ± 95652.50'  | '7 ± 1.14%'                | '7'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '23331150.55 ± 1.60%'  | '22600244.50 ± 24962.50'   | '43 ± 1.34%'               | '44'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '273211225.98 ± 1.41%' | '272005374.00 ± 115394.00' | '4 ± 1.20%'                | '4'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '442607142.55 ± 1.20%' | '434820116.00 ± 455811.00' | '2 ± 1.04%'                | '2'                       | 64      |

### View (mode 🚀) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4104493.33 ± 2.08%'   | '3923198.00 ± 110.00'      | '248 ± 1.32%'              | '255'                     | 244     |
| 1       | 'render 1000 uncollapsable views'                         | '87679050.92 ± 1.28%'  | '87123912.50 ± 5743.50'    | '11 ± 1.26%'               | '11'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '14064648.78 ± 1.90%'  | '13587137.00 ± 6355.00'    | '71 ± 1.50%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '184107829.77 ± 0.77%' | '183228851.00 ± 53144.00'  | '5 ± 0.77%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '317639710.20 ± 1.17%' | '310442132.00 ± 366431.00' | '3 ± 1.11%'                | '3'                       | 64      |

Changelog: [Internal]

Differential Revision: D78912257
@sbuggay sbuggay force-pushed the export-D78912257 branch from 2fc41a1 to 355de7e Compare July 25, 2025 06:26
sbuggay added a commit to sbuggay/react-native that referenced this pull request Jul 28, 2025
Summary:

Adds an additional pragma allowing tests to specify which mode JS should run in. By default this new JS mode will match the regular selected mode, and only shows up in the title if it differs.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '22196658.83 ± 0.55%'  | '22105506.50 ± 14452.50'   | '45 ± 0.52%'               | '45'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '261264120.72 ± 0.51%' | '260129906.50 ± 4932.50'   | '4 ± 0.47%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '46221879.73 ± 1.32%'  | '45766943.00 ± 175.00'     | '22 ± 0.96%'               | '22'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '511129295.53 ± 1.11%' | '507136026.50 ± 110.50'    | '2 ± 0.85%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '809121466.03 ± 0.98%' | '805250386.00 ± 124858.00' | '1 ± 0.75%'                | '1'                       | 64      |

### View (mode 🚀, jsMode 🐛) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '10159906.01 ± 1.31%'  | '9852036.00'               | '99 ± 1.17%'               | '102'                     | 99      |
| 1       | 'render 1000 uncollapsable views'                         | '140887334.83 ± 1.46%' | '139692094.50 ± 95652.50'  | '7 ± 1.14%'                | '7'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '23331150.55 ± 1.60%'  | '22600244.50 ± 24962.50'   | '43 ± 1.34%'               | '44'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '273211225.98 ± 1.41%' | '272005374.00 ± 115394.00' | '4 ± 1.20%'                | '4'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '442607142.55 ± 1.20%' | '434820116.00 ± 455811.00' | '2 ± 1.04%'                | '2'                       | 64      |


### View (mode 🚀) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4104493.33 ± 2.08%'   | '3923198.00 ± 110.00'      | '248 ± 1.32%'              | '255'                     | 244     |
| 1       | 'render 1000 uncollapsable views'                         | '87679050.92 ± 1.28%'  | '87123912.50 ± 5743.50'    | '11 ± 1.26%'               | '11'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '14064648.78 ± 1.90%'  | '13587137.00 ± 6355.00'    | '71 ± 1.50%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '184107829.77 ± 0.77%' | '183228851.00 ± 53144.00'  | '5 ± 0.77%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '317639710.20 ± 1.17%' | '310442132.00 ± 366431.00' | '3 ± 1.11%'                | '3'                       | 64      |

Changelog: [Internal]

Differential Revision: D78912257
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D78912257

@sbuggay sbuggay force-pushed the export-D78912257 branch from 355de7e to f75a3d1 Compare July 28, 2025 20:08
sbuggay added a commit to sbuggay/react-native that referenced this pull request Jul 28, 2025
Summary:
Pull Request resolved: facebook#52822

Refactors underlying modes by adding `isNativeOpt`, `isJsOp`, and `isJsBytecode` to allow for more granular control in a future diff.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)       | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | ------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '23005778.16 ± 0.53%'  | '22877194.50 ± 11607.50'  | '43 ± 0.50%'               | '44'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '271276451.70 ± 0.61%' | '268378201.00 ± 9925.00'  | '4 ± 0.59%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '47580650.91 ± 1.21%'  | '47212012.00 ± 2979.00'   | '21 ± 0.89%'               | '21'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '521237370.22 ± 1.09%' | '516142815.00 ± 41682.00' | '2 ± 0.84%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '828143691.48 ± 0.94%' | '824723257.50 ± 11331.50' | '1 ± 0.73%'                | '1'                       | 64      |

### View (mode 🚀, jsMode 🚀, bytecode) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4051033.45 ± 2.01%'   | '3876618.00'               | '251 ± 1.29%'              | '258'                     | 247     |
| 1       | 'render 1000 uncollapsable views'                         | '86134420.23 ± 1.38%'  | '85815369.50 ± 281477.50'  | '12 ± 1.38%'               | '12'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '13921817.92 ± 2.57%'  | '13474963.50 ± 4977.50'    | '72 ± 1.62%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '182664526.31 ± 0.74%' | '181872565.00 ± 10281.00'  | '5 ± 0.73%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '313110386.45 ± 1.13%' | '307934163.50 ± 156920.50' | '3 ± 1.07%'                | '3'                       | 64      |

Changelog: [Internal]

Differential Revision: D78912257
sbuggay pushed a commit to sbuggay/react-native that referenced this pull request Jul 29, 2025
Summary:
Pull Request resolved: facebook#52822

Refactors underlying modes by adding `isNativeOpt`, `isJsOp`, and `isJsBytecode` to allow for more granular control in a future diff.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)       | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | ------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '23005778.16 ± 0.53%'  | '22877194.50 ± 11607.50'  | '43 ± 0.50%'               | '44'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '271276451.70 ± 0.61%' | '268378201.00 ± 9925.00'  | '4 ± 0.59%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '47580650.91 ± 1.21%'  | '47212012.00 ± 2979.00'   | '21 ± 0.89%'               | '21'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '521237370.22 ± 1.09%' | '516142815.00 ± 41682.00' | '2 ± 0.84%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '828143691.48 ± 0.94%' | '824723257.50 ± 11331.50' | '1 ± 0.73%'                | '1'                       | 64      |

### View (mode 🚀, jsMode 🚀, bytecode) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4051033.45 ± 2.01%'   | '3876618.00'               | '251 ± 1.29%'              | '258'                     | 247     |
| 1       | 'render 1000 uncollapsable views'                         | '86134420.23 ± 1.38%'  | '85815369.50 ± 281477.50'  | '12 ± 1.38%'               | '12'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '13921817.92 ± 2.57%'  | '13474963.50 ± 4977.50'    | '72 ± 1.62%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '182664526.31 ± 0.74%' | '181872565.00 ± 10281.00'  | '5 ± 0.73%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '313110386.45 ± 1.13%' | '307934163.50 ± 156920.50' | '3 ± 1.07%'                | '3'                       | 64      |

Changelog: [Internal]

Differential Revision: D78912257
sbuggay added a commit to sbuggay/react-native that referenced this pull request Jul 29, 2025
Summary:

Refactors underlying modes by adding `isNativeOpt`, `isJsOpt`, and `isJsBytecode` to allow for more granular control in a future diff.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)       | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | ------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '23005778.16 ± 0.53%'  | '22877194.50 ± 11607.50'  | '43 ± 0.50%'               | '44'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '271276451.70 ± 0.61%' | '268378201.00 ± 9925.00'  | '4 ± 0.59%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '47580650.91 ± 1.21%'  | '47212012.00 ± 2979.00'   | '21 ± 0.89%'               | '21'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '521237370.22 ± 1.09%' | '516142815.00 ± 41682.00' | '2 ± 0.84%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '828143691.48 ± 0.94%' | '824723257.50 ± 11331.50' | '1 ± 0.73%'                | '1'                       | 64      |


### View (mode 🚀, jsMode 🚀, bytecode) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4051033.45 ± 2.01%'   | '3876618.00'               | '251 ± 1.29%'              | '258'                     | 247     |
| 1       | 'render 1000 uncollapsable views'                         | '86134420.23 ± 1.38%'  | '85815369.50 ± 281477.50'  | '12 ± 1.38%'               | '12'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '13921817.92 ± 2.57%'  | '13474963.50 ± 4977.50'    | '72 ± 1.62%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '182664526.31 ± 0.74%' | '181872565.00 ± 10281.00'  | '5 ± 0.73%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '313110386.45 ± 1.13%' | '307934163.50 ± 156920.50' | '3 ± 1.07%'                | '3'                       | 64      |


Changelog: [Internal]

Reviewed By: rubennorte

Differential Revision: D78912257
sbuggay pushed a commit to sbuggay/react-native that referenced this pull request Jul 29, 2025
Summary:
Pull Request resolved: facebook#52822

Refactors underlying modes by adding `isNativeOpt`, `isJsOp`, and `isJsBytecode` to allow for more granular control in a future diff.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)       | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | ------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '23005778.16 ± 0.53%'  | '22877194.50 ± 11607.50'  | '43 ± 0.50%'               | '44'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '271276451.70 ± 0.61%' | '268378201.00 ± 9925.00'  | '4 ± 0.59%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '47580650.91 ± 1.21%'  | '47212012.00 ± 2979.00'   | '21 ± 0.89%'               | '21'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '521237370.22 ± 1.09%' | '516142815.00 ± 41682.00' | '2 ± 0.84%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '828143691.48 ± 0.94%' | '824723257.50 ± 11331.50' | '1 ± 0.73%'                | '1'                       | 64      |

### View (mode 🚀, jsMode 🚀, bytecode) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4051033.45 ± 2.01%'   | '3876618.00'               | '251 ± 1.29%'              | '258'                     | 247     |
| 1       | 'render 1000 uncollapsable views'                         | '86134420.23 ± 1.38%'  | '85815369.50 ± 281477.50'  | '12 ± 1.38%'               | '12'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '13921817.92 ± 2.57%'  | '13474963.50 ± 4977.50'    | '72 ± 1.62%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '182664526.31 ± 0.74%' | '181872565.00 ± 10281.00'  | '5 ± 0.73%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '313110386.45 ± 1.13%' | '307934163.50 ± 156920.50' | '3 ± 1.07%'                | '3'                       | 64      |

Changelog: [Internal]

Differential Revision: D78912257
sbuggay added 2 commits July 30, 2025 10:48
Summary:

Hardens RN to running in mismatched opt/dev modes.

While adding an opt native/dev js mode to fantom, LogBox was trying to load NativeDevSettings when it didn't exist because of mode mismatch.

This is the only location it's happening, so this just moves the NativeDevSettings load into the one function that needs it.

Changelog: [Internal]

Reviewed By: rubennorte

Differential Revision: D78952284
Summary:

Refactors underlying modes by adding `isNativeOpt`, `isJsOpt`, and `isJsBytecode` to allow for more granular control in a future diff.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)       | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | ------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '23005778.16 ± 0.53%'  | '22877194.50 ± 11607.50'  | '43 ± 0.50%'               | '44'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '271276451.70 ± 0.61%' | '268378201.00 ± 9925.00'  | '4 ± 0.59%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '47580650.91 ± 1.21%'  | '47212012.00 ± 2979.00'   | '21 ± 0.89%'               | '21'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '521237370.22 ± 1.09%' | '516142815.00 ± 41682.00' | '2 ± 0.84%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '828143691.48 ± 0.94%' | '824723257.50 ± 11331.50' | '1 ± 0.73%'                | '1'                       | 64      |


### View (mode 🚀, jsMode 🚀, bytecode) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4051033.45 ± 2.01%'   | '3876618.00'               | '251 ± 1.29%'              | '258'                     | 247     |
| 1       | 'render 1000 uncollapsable views'                         | '86134420.23 ± 1.38%'  | '85815369.50 ± 281477.50'  | '12 ± 1.38%'               | '12'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '13921817.92 ± 2.57%'  | '13474963.50 ± 4977.50'    | '72 ± 1.62%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '182664526.31 ± 0.74%' | '181872565.00 ± 10281.00'  | '5 ± 0.73%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '313110386.45 ± 1.13%' | '307934163.50 ± 156920.50' | '3 ± 1.07%'                | '3'                       | 64      |


Changelog: [Internal]

Reviewed By: rubennorte

Differential Revision: D78912257
@sbuggay sbuggay force-pushed the export-D78912257 branch from f75a3d1 to 6404360 Compare July 30, 2025 17:48
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D78912257

sbuggay added a commit to sbuggay/react-native that referenced this pull request Jul 30, 2025
Summary:

Refactors underlying modes by adding `isNativeOpt`, `isJsOpt`, and `isJsBytecode` to allow for more granular control in a future diff.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)       | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | ------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '23005778.16 ± 0.53%'  | '22877194.50 ± 11607.50'  | '43 ± 0.50%'               | '44'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '271276451.70 ± 0.61%' | '268378201.00 ± 9925.00'  | '4 ± 0.59%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '47580650.91 ± 1.21%'  | '47212012.00 ± 2979.00'   | '21 ± 0.89%'               | '21'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '521237370.22 ± 1.09%' | '516142815.00 ± 41682.00' | '2 ± 0.84%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '828143691.48 ± 0.94%' | '824723257.50 ± 11331.50' | '1 ± 0.73%'                | '1'                       | 64      |


### View (mode 🚀, jsMode 🚀, bytecode) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4051033.45 ± 2.01%'   | '3876618.00'               | '251 ± 1.29%'              | '258'                     | 247     |
| 1       | 'render 1000 uncollapsable views'                         | '86134420.23 ± 1.38%'  | '85815369.50 ± 281477.50'  | '12 ± 1.38%'               | '12'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '13921817.92 ± 2.57%'  | '13474963.50 ± 4977.50'    | '72 ± 1.62%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '182664526.31 ± 0.74%' | '181872565.00 ± 10281.00'  | '5 ± 0.73%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '313110386.45 ± 1.13%' | '307934163.50 ± 156920.50' | '3 ± 1.07%'                | '3'                       | 64      |


Changelog: [Internal]

Reviewed By: rubennorte

Differential Revision: D78912257
@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Jul 30, 2025
@facebook-github-bot
Copy link
Contributor

This pull request has been merged in 6d51bce.

kikoso pushed a commit to kikoso/react-native that referenced this pull request Aug 26, 2025
Summary:
Pull Request resolved: facebook#52822

Refactors underlying modes by adding `isNativeOpt`, `isJsOpt`, and `isJsBytecode` to allow for more granular control in a future diff.

### View ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)       | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | ------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '23005778.16 ± 0.53%'  | '22877194.50 ± 11607.50'  | '43 ± 0.50%'               | '44'                      | 64      |
| 1       | 'render 1000 uncollapsable views'                         | '271276451.70 ± 0.61%' | '268378201.00 ± 9925.00'  | '4 ± 0.59%'                | '4'                       | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '47580650.91 ± 1.21%'  | '47212012.00 ± 2979.00'   | '21 ± 0.89%'               | '21'                      | 64      |
| 3       | 'render 1000 views with large amount of props and styles' | '521237370.22 ± 1.09%' | '516142815.00 ± 41682.00' | '2 ± 0.84%'                | '2'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '828143691.48 ± 0.94%' | '824723257.50 ± 11331.50' | '1 ± 0.73%'                | '1'                       | 64      |

### View (mode 🚀, jsMode 🚀, bytecode) ###

| (index) | Task name                                                 | Latency average (ns)   | Latency median (ns)        | Throughput average (ops/s) | Throughput median (ops/s) | Samples |
| ------- | --------------------------------------------------------- | ---------------------- | -------------------------- | -------------------------- | ------------------------- | ------- |
| 0       | 'render 100 uncollapsable views'                          | '4051033.45 ± 2.01%'   | '3876618.00'               | '251 ± 1.29%'              | '258'                     | 247     |
| 1       | 'render 1000 uncollapsable views'                         | '86134420.23 ± 1.38%'  | '85815369.50 ± 281477.50'  | '12 ± 1.38%'               | '12'                      | 64      |
| 2       | 'render 100 views with large amount of props and styles'  | '13921817.92 ± 2.57%'  | '13474963.50 ± 4977.50'    | '72 ± 1.62%'               | '74'                      | 72      |
| 3       | 'render 1000 views with large amount of props and styles' | '182664526.31 ± 0.74%' | '181872565.00 ± 10281.00'  | '5 ± 0.73%'                | '5'                       | 64      |
| 4       | 'render 1500 views with large amount of props and styles' | '313110386.45 ± 1.13%' | '307934163.50 ± 156920.50' | '3 ± 1.07%'                | '3'                       | 64      |

Changelog: [Internal]

Reviewed By: rubennorte

Differential Revision: D78912257

fbshipit-source-id: 16fd0301af98159dbb9818cb8092bd4416ef2559
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. p: Facebook Partner: Facebook Partner
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants