Skip to content
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

[Image][Performance] Better caching for iOS images #10792

Closed
1 of 5 tasks
Szymon20000 opened this issue Sep 2, 2022 · 60 comments · May be fixed by #11009
Closed
1 of 5 tasks

[Image][Performance] Better caching for iOS images #10792

Szymon20000 opened this issue Sep 2, 2022 · 60 comments · May be fixed by #11009
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering External Added to denote the issue can be worked on by a contributor Internal Requires API changes or must be handled by Expensify staff Reviewing Has a PR in review Weekly KSv2

Comments

@Szymon20000
Copy link
Contributor

Szymon20000 commented Sep 2, 2022

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


What performance issue do we need to solve?

Better caching for iOS images

What is the impact of this on end-users?

Previously seen avatars/assets will show up faster with suggested change.

List any benchmarks that show the severity of the issue

Proposed solution (if any)

Use FastImage for Avatars and images that are par of the messages.
Avatar.js uses Image from react-native
react-native-render-html - that as far as I know is used for rendering attachment (among the other things) uses Image from 'react-native' if the change with avatars will give us good results it's worth to test patching that library as well. So that it uses fast-image.

List any benchmarks after implementing the changes to show impacts of the proposed solution (if any)

Platform:

Where is this issue occurring?

  • Web
  • iOS
  • Android
  • Desktop App
  • Mobile Web

Version Number:
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Upwork URL: https://www.upwork.com/jobs/~013a8690a2c460efd2

View all open jobs on Upwork

Reported by: @parasharrajat originally on this issue.

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~019ac837ee43fe141c
  • Upwork Job ID: 1620162574495588352
  • Last Price Increase: 2023-01-30
@melvin-bot
Copy link

melvin-bot bot commented Sep 2, 2022

📣 @Szymon20000! 📣
Please report bugs or suggest features in the #expensify-open-source Slack channel, don't directly open issues in this repo!
Instructions here to join the channel 📖

@melvin-bot
Copy link

melvin-bot bot commented Sep 2, 2022

Triggered auto assignment to @stitesExpensify (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

@roryabraham
Copy link
Contributor

Switching this to weekly

@roryabraham
Copy link
Contributor

@Szymon20000 I saw you put up a draft PR but you weren't sure about the change because right now FastImage isn't compatible with Fabric. Overall I think we should prioritize Fabric compatibility over using FastImage.

Looking into FastImage some more, it seems like one of the main things it handles is persistent image caching. However, that functionality feels potentially in-scope for our persistent storage library Onyx. Going to add this issue to the image tracking issue here

@melvin-bot melvin-bot bot removed the Overdue label Sep 21, 2022
@melvin-bot melvin-bot bot added the Overdue label Sep 29, 2022
@roryabraham
Copy link
Contributor

Any new thoughts here @Szymon20000?

@melvin-bot melvin-bot bot removed the Overdue label Sep 30, 2022
@melvin-bot melvin-bot bot added the Overdue label Oct 10, 2022
@puneetlath puneetlath added the Bug Something is broken. Auto assigns a BugZero manager. label Oct 19, 2022
@mallenexpensify
Copy link
Contributor

Been a minute.... let's see...
@roryabraham , should Alex Beaman be assigned to cuz he's leading
[Tracking] [Polish] Image-related feature request and improvements #10894

If so, I reckon I should be too since I'm the the BugZero (BZ) team person for that tracking issue.

Also... @roryabraham and/or @Szymon20000 , is this actively being worked on? If so, any update?

@roryabraham
Copy link
Contributor

should Alex Beaman be assigned to cuz he's leading

Yes, I think so.

Also... @roryabraham and/or @Szymon20000 , is this actively being worked on? If so, any update?

Definitely not by me – I don't think there's been any active development on this.

@mallenexpensify mallenexpensify removed the Daily KSv2 label Dec 23, 2022
@melvin-bot melvin-bot bot removed the Overdue label Dec 23, 2022
@mallenexpensify
Copy link
Contributor

Bumped to weekly cuz on hold

@melvin-bot melvin-bot bot added the Overdue label Jan 2, 2023
@Beamanator
Copy link
Contributor

Hmm ok well I've been OOO for the week 1 & 2 updates so haven't reached out yet. It looks like there still hasn't been movement on the upstream PR (DylanVann/react-native-fast-image#953) so I say we can try to reach out to see if the maintainer has time to look at the PR this week - and then if there's still no movement by EOW we fork & work on our own version

@melvin-bot melvin-bot bot removed the Overdue label Jan 2, 2023
@Beamanator
Copy link
Contributor

Ok reached out, I'll post back here if I get a response

@mananjadhav
Copy link
Collaborator

@Beamanator @mallenexpensify This might be ready for payout by tomorrow, so before we do that I want to clarify how do we handle the payment for this one. I reviewed two PRs for this issue:

  1. [Image][Performance] Fast Image with Auth Token Header Caching #12648 - Was reverted as it had a regression
  2. [Image][Performance] Fast Image with Auth Token Header Caching (revert follow-up) #13304 - Merged and deployed to production on Jan 20, 2023.

Both the PRs were extremely complex and tedious to review. @Beamanator had also mentioned about the pay bump for the first PR review here

and overall both the PR codes are a lot different. Can we please increase payout for this one to accommodate the complexity and number of PRs.

@mallenexpensify
Copy link
Contributor

Thanks @mananjadhav, this is definitely a tricky one. I'm going to start an internal discussion, hang tight plz...

@mallenexpensify
Copy link
Contributor

@mananjadhav after internal discussion we believe that $4k, in total, is a fair amount, based on the complexity and also because of the regression. Do you agree @mananjadhav ?
@thomas-coldwell is with Margelo and his compensation is paid outside of our standard process.

@mananjadhav
Copy link
Collaborator

Do you agree @mananjadhav ?

Thanks @mallenexpensify. Agreed it is fair :)

@mananjadhav
Copy link
Collaborator

@mallenexpensify Quick bump on this one.

@mallenexpensify mallenexpensify added the Internal Requires API changes or must be handled by Expensify staff label Jan 30, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jan 30, 2023

Job added to Upwork: https://www.upwork.com/jobs/~019ac837ee43fe141c

@melvin-bot
Copy link

melvin-bot bot commented Jan 30, 2023

Current assignee @mananjadhav is eligible for the Internal assigner, not assigning anyone new.

@mallenexpensify
Copy link
Contributor

@mananjadhav can you please accept the job and reply here once you have?
https://www.upwork.com/jobs/~019ac837ee43fe141c

@mananjadhav
Copy link
Collaborator

Accepted @mallenexpensify

@mallenexpensify
Copy link
Contributor

@mananjadhav paid $4000.

I'm guessing this doesn't need regression test steps added. @Beamanator can you confirm? And close if so? Thx

@parasharrajat
Copy link
Member

@mallenexpensify the reporting bonus contract is still unpaid for me.

@mallenexpensify
Copy link
Contributor

Thanks @parasharrajat , I missed it as I paid Manan on a different Upwork job.
All set!

@Beamanator
Copy link
Contributor

@mallenexpensify good question, I believe you're right, I think we can close this out - also @trjExpensify it looks like you added the upstream PR link to the issue title, but I made this issue to track that PR here: #14382

I think this is better so we can close out this very large issue, thoughts?

@trjExpensify
Copy link
Contributor

Ah yeah, totally. That was before we went the fork route. Make sense. We good to close this out then?

@trjExpensify trjExpensify changed the title [HOLD Upstream fix - react-native-fast-image - #953][Image][Performance] Better caching for iOS images [Image][Performance] Better caching for iOS images Feb 1, 2023
@Beamanator
Copy link
Contributor

Aah that makes sense. Ya I'm happy to let @mallenexpensify close it, not sure if all the payments are done

@mallenexpensify
Copy link
Contributor

All paid!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering External Added to denote the issue can be worked on by a contributor Internal Requires API changes or must be handled by Expensify staff Reviewing Has a PR in review Weekly KSv2
Projects
None yet
Development

Successfully merging a pull request may close this issue.