Skip to content

diegolmello/ReproRNBenchmark

Repository files navigation

Overview

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:

APK "sample"

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.

Tests

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

Test Results

tti.yml

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

tti_loggedin.yml

It does a similar thing, but after logged in. Some requests to backend and more data to be rendered.

tti_loggedin.mp4

clear_cache.yml

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.

clear_cache.mp4

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages