-
Notifications
You must be signed in to change notification settings - Fork 988
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_: crash on viewing dynamic file type collectibles #21245
fix_: crash on viewing dynamic file type collectibles #21245
Conversation
Jenkins BuildsClick to see older builds (8)
|
3f347e5
to
f884430
Compare
86% of end-end tests have passed
Failed tests (1)Click to expandClass TestOneToOneChatMultipleSharedDevicesNewUi:
Passed tests (6)Click to expandClass TestCommunityMultipleDeviceMerged:
Class TestCommunityOneDeviceMerged:
Class TestWalletMultipleDevice:
Class TestWalletOneDevice:
|
Hi @smohamedjavid, unfortunately, I can't test this PR due to an existing blocker. I don't have enough collectibles to test smooth scrolling, and I don't own any GIF collectibles |
I've created a few dynamic collectibles (1 MP4 and 2 GIF formats), but they are currently shown as unsupported in our app. The owner of these collectibles is MP4: Link |
@VolodLytvynenko - Thank you for testing the PR 🙏 GIF was the only dynamic file type which was supported. This is now removed in this PR due to performance reasons. On that note, you are expected to see the unsupported message. We will explore the other file types along with this GIF type and add support in later releases. 👍 |
f884430
to
92bfa2b
Compare
@smohamedjavid Apologies. I misunderstood the PR initially. PR looks good, no issues from my side. Ready to be merged |
@VolodLytvynenko Btw, I've just checked the blocker you mentioned and I took it. @smohamedjavid Could you please provide more details about the performance metrics you shared? |
I second that @ulisesmac, good question.
@smohamedjavid provided the solution I was thinking about while checking this PR, static thumbnails in the listing screen. Even famous webapps avoid showing multiple live media (e.g. YouTube), so I think this won't be seen as bad thing from users, probably even the opposite. With external gifs and videos we have no control and the experience can easily degrade in a mobile device. |
@ulisesmac - This performance measurement is done on the debug version of the app on an iOS simulator (iPhone 11 Pro) using the React Native performance monitor tool (Shake the device > debug menu > Show Perf Monitor). The tool will give so much insight into RAM usage and FPS (JS & UI). 60 FPS is smooth. Under 30 FPS will be choppy, and under 24 FPS will be a nightmare. The release build naturally tends to perform slightly better.
Yes @ilmotta, I don't want to remove the GIF support completely. I explored a bit about pausing the GIF at least, but unfortunately, the React Native Image component or fast-image lib doesn't support this. We need to do some R&D to display a static thumbnail or something. We will definitely come back to this later, as this would improve the UX without affecting the device's performance. |
Signed-off-by: Mohamed Javid <[email protected]>
92bfa2b
to
c8e7227
Compare
fixes #20466
Summary
This PR removes the support for GIF file types for the collectibles.
Review notes
The crash is due to bloated memory consumption due to dynamic file types (such as GIF) in the list that result in low FPS.
It’s consumed so much memory. The average RAM consumption was 1.2 GB (60 FPS), if the collectables were static images. If it’s a GIF, it goes up to 2.5 GB (8 FPS).
Until we find a solid solution to handle the dynamic data types, we drop the support for GIFs and support only static images/file types.
Platforms
Steps to test
Prerequisite: A profile with a lot of collectibles (GIFs)
status: ready