This repo is an effort to reproduce what's pointed out by the community at Very long re-rendering times in 0.71.3. It contains:
- APKs pointing to 0.69.8, 0.71.7, and 0.72.3
- Test files making use of https://flashlight.dev/
- Test results
I tried to create a repro using React Native only, but I was not able to reproduce the issue that way. I thought everybody going through the same issue could've been using common libs from the community, such as react-navigation, RNGH, etc.
I know it's not ideal, but I've been running through the issue myself and I'm a maintainer of the Rocket.Chat app, which is open source, so everybody can try it by themselves. Hopefully that's good enough.
These are the branches used during those tests:
In case you're interested to test by yourself, here's how to build it.
I created a small script to make it easier to track test results and it can be used like this:
sh ./flashlight-runner.sh <testFile> <RN Version>
Tests were ran on Xiaomi Redmi 9, Android 11.
All test results and videos are saved on ./results/{test}
.
You can see the results and all the info generated (threads, CPU, videos, etc) by Flashlight by running this command:
flashlight report ./results/{test}
Example:
flashlight report ./results/clear_cache
This test just open the app and asserts for a label. 0.72 seems to use a lot more resources to load the app.
tti.mp4
It does a similar thing, but after logged in. Some requests to backend and more data to be rendered.
tti_loggedin.mp4
It opens the drawer and clears the app cache, which is a feature to refresh local workspace db. It does several requests to the server, so it's an expensive task. Even though TTI tests above shows us 0.72 is worse than the others, this test shows an improvement over 0.71.