|
1 | 1 | # React Native Android JS Performance Measurements
|
2 | 2 |
|
3 |
| -A simple react native app with some measurements of the performance of the android jsc. |
| 3 | +A simple react native app with some performance benchmarks. |
| 4 | + |
| 5 | +#### Past measurements are saved into [results](/results.json) |
| 6 | +The table blow is generated by calling `npm run generateReadmeTable` |
| 7 | + |
4 | 8 |
|
5 | 9 | ## How to run
|
6 | 10 |
|
7 | 11 | 1. Compile the jsc locally (from root project, so that the compiled result will be at `/dist`)
|
8 |
| -1. Connect a physical device |
9 |
| -1. `npm i` from within `/measure` |
10 |
| -2. `npm run start`. This will compile a release version of the profiler app with the jsc from `/dist` and start measurements automatically. |
11 |
| -- 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. |
| 12 | +2. Connect a physical device |
| 13 | +3. `npm i` from within `/measure` |
| 14 | +4. `npm run start`. This will compile a release version of the profiler app with the jsc from `/dist` and start measurements automatically. |
| 15 | +5. After the tests finish, the timings will be printed. The `results.json` needs to be updated manually, then the table below can be generated. |
| 16 | +6. 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. |
12 | 17 |
|
13 | 18 | ## Measurements
|
14 | 19 |
|
15 |
| -- All measurements run on (a very clean) Pixel XL, release mode |
16 |
| -- Render is measured with 1000 elements, flat or deep. The timing is taken after a full roundtrip (after `onLayout`) |
| 20 | +- All timings in milliseconds (lower is better) |
| 21 | +- Size in MB (arm32/arm64) |
| 22 | +- Render is measured with 1000 elements, flat or deep. The timing is taken after a full render roundtrip (after `onLayout`) |
17 | 23 | - Synthetic tests were modified to be able to run on RN environment, based on the following:
|
18 | 24 | - [`jetstream`](http://browserbench.org/JetStream/)
|
19 | 25 | - [`octane2`](https://chromium.github.io/octane/)
|
20 | 26 | - [`sixspeed`](https://github.com/kpdecker/six-speed)
|
21 | 27 | - [`sunspider`](https://webkit.org/perf/sunspider/sunspider.html)
|
22 |
| -- All timings in milliseconds |
23 |
| -- Size in MB |
| 28 | +- All measurements run on (a very clean) Pixel XL, release mode |
24 | 29 |
|
25 | 30 | ### Results
|
26 | 31 |
|
27 | 32 | | Npm Version | Publish Date | Config | WebkitGTK Revision | WebkitGTK Date | TTI | SunSpider | Jetstream Hashmap | Octane2 | SixSpeed | Render Flat | Render Deep | Size |
|
28 | 33 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
|
29 |
| -| - | - | Stock RN44 (x32 only, non-i18n) | 174650 | 2014-10-13 | 579 | 519 | 4087 | 2545 | 1386 | 844 | 1162 | 1.8/- | |
30 |
| -| 216113.0.3 | 2017-11-17 | webkitGTK:2.17.1<br/>androidICU:7.1.2_r11<br/>i18n:false<br/> | 216113 | 2017-05-03 | 557 | 448 | 3151 | 1938 | 426 | 893 | 1084 | 4.3/6.5 | |
31 |
| -| 216113.0.3 | 2017-11-17 | webkitGTK:2.17.1<br/>androidICU:7.1.2_r11<br/>i18n:true<br/> | 216113 | 2017-05-03 | 561 | 459 | 3164 | 1970 | 431 | 878 | 1208 | 4.4/6.6 | |
32 |
| -| - | - | 2.18.2-8.0.0_r34-x32-en-nobabel | 216113 | 2017-10-27 | TODO | 480 | 3300 | 1850 | 410 | 900 | 1350 | TODO | |
33 |
| -| - | - | 2.18.2-8.0.0_r34-x32-en-nojit | 216113 | 2017-10-27 | TODO | 1045 | 9164 | 3856 | 574 | 900 | 1165 | TODO | |
| 34 | +| - | - | Stock RN44 (x32 only, non-i18n) | 174650 | 2014-10-13 | 579 | 519 | 4087 | 2545 | 1386 | 844 | 1162 | 2.7/- | |
| 35 | +| 216113.0.3 | 2017-11-17 | webkitGTK:2.17.1<br/>androidICU:7.1.2_r11<br/>i18n:false<br/> | 216113 | 2017-05-03 | 557 | 448 | 3151 | 1938 | 426 | 893 | 1084 | 5.9/9.6 | |
| 36 | +| 216113.0.3 | 2017-11-17 | webkitGTK:2.17.1<br/>androidICU:7.1.2_r11<br/>i18n:true<br/> | 216113 | 2017-05-03 | 561 | 459 | 3164 | 1970 | 431 | 878 | 1208 | 12/15 | |
| 37 | +| - | - | webkitGTK:2.17.1<br/>androidICU:7.1.2_r11<br/>i18n:false<br/>env:nobabel<br/> | 216113 | 2017-05-03 | 560 | 480 | 3300 | 1850 | 410 | 900 | 1350 | 5.9/9.6 | |
| 38 | +| - | - | webkitGTK:2.17.1<br/>androidICU:7.1.2_r11<br/>i18n:false<br/>env:nojit<br/> | 216113 | 2017-05-03 | 563 | 1045 | 9164 | 3856 | 574 | 900 | 1165 | 5.9/9.6 | |
34 | 39 | | - | - | 2.18.2-8.0.0_r34-x32-en-tip | 216113 | 2017-10-27 | TODO | 480 | 3250 | 1800 | 400 | 850 | 1300 | TODO |
|
35 | 40 | | - | - | webkitGTK:2.18.2<br/>androidICU:8.0.0_r34<br/>i18n:false<br/> | 216113 | 2017-10-27 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO |
|
36 | 41 | | - | - | 2.18.2-8.0.0_r34-x32-i18n-stable | 216113 | 2017-10-27 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO |
|
|
0 commit comments