A simple react native app with some performance benchmarks.
Past measurements are saved into results
The table blow is generated by calling npm run generateReadmeTable
- Compile the jsc locally (from root project, so that the compiled result will be at
/dist
) - Connect a physical device
npm i
from within/measure
npm run start
. This will compile a release version of the profiler app with the jsc from/dist
and start measurements automatically.- After the tests finish, the timings will be printed. The
results.json
needs to be updated manually, then the table below can be generated. - You can run the tests manually: inside the app select one of the tests for it to execute. To run a different test close the app and remove it from recent apps to release all memory.
- All timings in milliseconds (lower is better)
- Size in MB (arm32/arm64)
- Render is measured with 1000 elements, flat or deep. The timing is taken after a full render roundtrip (after
onLayout
) - Synthetic tests were modified to be able to run on RN environment, based on the following:
- All measurements run on (a very clean) Pixel XL, release mode
Npm Version | Publish Date | Config | WebkitGTK Revision | WebkitGTK Date | TTI | SunSpider | Jetstream Hashmap | Octane2 | SixSpeed | Render Flat | Render Deep | Size |
---|---|---|---|---|---|---|---|---|---|---|---|---|
- | - | Stock RN44 (x32 only, non-i18n) | 174650 | 2014-10-13 | 579 | 519 | 4087 | 2545 | 1386 | 844 | 1162 | 2.7/- |
216113.0.3 | 2017-11-17 | webkitGTK:2.17.1 androidICU:7.1.2_r11 i18n:false |
216113 | 2017-05-03 | 557 | 448 | 3151 | 1938 | 426 | 893 | 1084 | 5.9/8.8 |
216113.0.3 | 2017-11-17 | webkitGTK:2.17.1 androidICU:7.1.2_r11 i18n:true |
216113 | 2017-05-03 | 561 | 459 | 3164 | 1970 | 431 | 878 | 1208 | 12/15 |
- | - | webkitGTK:2.17.1 androidICU:7.1.2_r11 i18n:false env:nobabel |
216113 | 2017-05-03 | 560 | 480 | 3300 | 1850 | 410 | 900 | 1350 | 5.9/8.8 |
- | - | webkitGTK:2.17.1 androidICU:7.1.2_r11 i18n:false env:nojit |
216113 | 2017-05-03 | 563 | 1045 | 9164 | 3856 | 574 | 900 | 1165 | 5.9/8.8 |
224109.0.0 | 2018-06-04 | webkitGTK:2.18.2 androidICU:8.0.0_r34 i18n:false |
224109 | 2017-10-27 | 575 | 461 | 3148 | 1884 | 423 | 899 | 1182 | 6.1/9.3 |
224109.0.0 | 2018-06-04 | webkitGTK:2.18.2 androidICU:8.0.0_r34 i18n:true |
224109 | 2017-10-27 | 598 | 462 | 3115 | 1885 | 415 | 911 | 1094 | 13/16 |
- | - | webkitGTK:2.18.2 androidICU:8.0.0_r34 i18n:false env:x64 custom react-native@0.51 |
224109 | 2017-10-27 | 517 | 423 | 2739 | 1486 | 343 | 1154 | 1304 | 5.5/8.3 |
224109.1.0 | 2018-07-29 | webkitGTK:2.18.2 chromiumICUCommit:b34251f i18n:false |
224109 | 2017-10-27 | 522 | 461 | 3045 | 1946 | 428 | 859 | 1041 | 5.1/7.7 |
224109.1.0 | 2018-07-29 | webkitGTK:2.18.2 chromiumICUCommit:b34251f i18n:true |
224109 | 2017-10-27 | 549 | 451 | 3094 | 1935 | 430 | 833 | 1123 | 14/18 |
225067.0.0 | 2018-10-09 | webkitGTK:2.19.2 chromiumICUCommit:b34251f i18n:false |
225067 | 2017-11-21 | 574 | 446 | 3288 | 1902 | 404 | 819 | 1094 | 4.8/7.2 |
225067.0.0 | 2018-10-09 | webkitGTK:2.19.2 chromiumICUCommit:b34251f i18n:true |
225067 | 2017-11-21 | 587 | 445 | 3294 | 1884 | 400 | 821 | 982 | 12.7/16 |
236355.0.0 | 2018-11-06 | webkitGTK:2.22.2 chromiumICUCommit:b34251f i18n:false |
236355 | 2018-09-21 | 436 | 423 | 442 | 1145 | 319 | 651 | 624 | 7.5/10.3 |
236355.0.0 | 2018-11-06 | webkitGTK:2.22.2 chromiumICUCommit:b34251f i18n:true |
236355 | 2018-09-21 | 451 | 463 | 451 | 1166 | 313 | 617 | 656 | 14.9/18.3 |