-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[HOLD for payment 2024-06-13] [LOW] [Performance] Improve AppNavigator Performance #42744
Comments
Triggered auto assignment to @alexpensify ( |
Hi, I’m Michael (Mykhailo) from Callstack and I would like to work on this issue. |
Hey @rezkiy37, great work so far |
Job added to Upwork: https://www.upwork.com/jobs/~01ec3bf0fc8d2fa2f1 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @c3024 ( |
Measuring on IOS and Android Production-Release builds. |
Working on it. Not overdue. |
PR is in draft, I'll generate testable builds soon |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.79-11 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2024-06-13. 🎊 For reference, here are some details about the assignees on this issue: |
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
To prepare for the payment date, @c3024 please accept the invite here: https://www.upwork.com/jobs/~01ec3bf0fc8d2fa2f1. Tomorrow, I'll complete the payment process in Upwork. Thanks! |
@alexpensify Thanks, accepted the invite. |
Payment Summary
BugZero Checklist (@alexpensify)
|
Coming from here. @rezkiy37
Problem
There is a core component of the app - AppNavigator. Basically, it renders AuthScreens or PublicScreens based on a prop - authenticated. Currently, the component takes around 250ms to render. Also, it re-renders several times.
Solution
I propose to decrease the render duration and avoid redundant re-renders.
Wrap the component in React.memo to get a memoized version of that component. And, as a result, AppNavigator renders once and does not re-render anymore until the user logins/logouts (authenticated changed). PublicScreens renders once as well.
There is a commit here. I am attaching screenshots with the legacy (the 1st) and updated (the 2nd) versions.
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @alexpensifyThe text was updated successfully, but these errors were encountered: