-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Screen transitions trigger an excessive number of react commits #28158
Comments
We've checked how it performs now and it seems that the number of renders decreased by a lot. On iOS, about 15-20 commits are being performed, while on the web it is about 30 - a huge improvement! Most of the commits are unrelated to Onyx. We're still working on proposing a solution that can further decrease the number of them. At this point, the delay in displaying the workspaces list on iOS is mostly caused by rendering a list of |
📣 @palys-swm! 📣
|
Hey. I've been working on multiple performance issues, and while they were not only related to screen transition, they help with rendering of both left navbar & report screen itself.
When the second would be merged I can make screen transition profiling once more (that could increase number of react commits but they would be much shorter). Re. proposed solution
I believe that onyx change is already used by the web app for some time, so it could also have positive impact on performance. |
I think we can close this catch all issue as we have made some improvements already and we can focus on new improvements in more directed/ specific problem/ solution issues |
Coming from here: https://expensify.slack.com/archives/C05LX9D6E07/p1694783353289039
Problem
A number of screen transitions (we mainly looked at screens related to workspaces) trigger an excessive number of react commits.
In some scenarios we are seeing hundreds of commits (250+).The majority of these commits are due to subscriptions to onyx.
Solution
We should aim at having juts a few commits when a screen is being pushed (ideally just one commit).
Updates for components rendered in a single batch should also be triggered in a single batch and committed with a single commit.
Figure out how to extend Expensify/react-native-onyx#315 to web.
The text was updated successfully, but these errors were encountered: