-
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-04-09] [$500] [Performance] Reduce the amount of expensive getOptions calls in Request Money flow #39133
Comments
Triggered auto assignment to @slafortune ( |
Hey, I'm Tomasz from Callstack and I want to work on this issue |
Job added to Upwork: https://www.upwork.com/jobs/~019e025ca125dedd18 |
Current assignee @akinwale is eligible for the External assigner, not assigning anyone new. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.58-8 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-04-09. 🎊 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:
|
$500 to @akinwale |
No regression tests required here |
Payment Summary
BugZero Checklist (@slafortune)
|
@akinwale please the offer sent here $500 |
@slafortune Accepted. Thanks! |
Problem
When using Request Money flow, the getOptions function is called multiple times, doing heavy operations and slowing down the app. Based on a provided trace, a single execution of this function takes ~2.5s, and it is called when the following actions are performed:
Additionally, the server search to get reports is also called on each keystroke.
All of this is making the app unresponsive for a long time, making it difficult to reach the next step of the money request process. The total amount of getOptions execution time in a provided trace was 29.7s.
Solution
To address this problem, we should reduce the amount of getOptions calls to minimum. We can achieve this by:
There is still need of calling the function when pressing “Split”, but there is a possibility we would be able to replace it with filtering once it’s implemented in the list (this is one of the efforts from the performance audit).
Considering the following scenario:
Before changes the getOptions was called 16 times, and after it is called 2 times.
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @slafortuneThe text was updated successfully, but these errors were encountered: