-
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
fix: improve getOneTransactionThreadReportID performance #46187
fix: improve getOneTransactionThreadReportID performance #46187
Conversation
lemme know when this is ready, happy to review! |
@dangrous this is ready for review. Thanks! |
For context, we should experience ~60% gain for this function's invocations, about 100-150ms each time for Jason when eg. visiting reports/transactions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool! Looks good.
Reviewer Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / SafariMacOS: Desktop |
This is ready to merge - but should we mark it as internal QA and have Jason test his new timing? Or will it be fast enough not to notice. |
@dangrous with these smaller updates I believe it's best to batch them, this isn't clearly noticeable on it's own. I then review each trace with 3+ batched fixes to ensure we're heading in the right direction. With that said, I believe we should just merge it :) |
Cool, that works! Merging. |
Filling in a missing backlink, this is a part of #45528 |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
🚀 Cherry-picked to staging by https://github.com/roryabraham in version: 9.0.14-1 🚀
@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes. |
🚀 Deployed to production by https://github.com/roryabraham in version: 9.0.14-6 🚀
|
Details
This PR refactors the
getOneTransactionThreadReportID
function with the following performance improvements:Array.isArray
to avoid unnecessary array conversions.Set
for iouRequestTypes instead of an Array, improving the performance by faster checking..filter
with afor...of
loop to reduce execution timeBefore:
After:
Fixed Issues
$
PROPOSAL:
Tests
Offline tests
QA Steps
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop