Skip to content

Commit 24a0da7

Browse files
committed
update benchmarks
1 parent e0485e3 commit 24a0da7

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

measure/README.md

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,41 @@
11
# React Native Android JS Performance Measurements
22

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+
48

59
## How to run
610

711
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.
1217

1318
## Measurements
1419

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`)
1723
- Synthetic tests were modified to be able to run on RN environment, based on the following:
1824
- [`jetstream`](http://browserbench.org/JetStream/)
1925
- [`octane2`](https://chromium.github.io/octane/)
2026
- [`sixspeed`](https://github.com/kpdecker/six-speed)
2127
- [`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
2429

2530
### Results
2631

2732
| Npm Version | Publish Date | Config | WebkitGTK Revision | WebkitGTK Date | TTI | SunSpider | Jetstream Hashmap | Octane2 | SixSpeed | Render Flat | Render Deep | Size |
2833
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
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 |
3439
| - | - | 2.18.2-8.0.0_r34-x32-en-tip | 216113 | 2017-10-27 | TODO | 480 | 3250 | 1800 | 400 | 850 | 1300 | TODO |
3540
| - | - | 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 |
3641
| - | - | 2.18.2-8.0.0_r34-x32-i18n-stable | 216113 | 2017-10-27 | TODO | TODO | TODO | TODO | TODO | TODO | TODO | TODO |

measure/results.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"sixspeed": "1386",
1313
"renderflat": "844",
1414
"renderdeep": "1162",
15-
"size": "1.8/-"
15+
"size": "2.7/-"
1616
},
1717
{
1818
"npm": "216113.0.3",
@@ -31,7 +31,7 @@
3131
"sixspeed": "426",
3232
"renderflat": "893",
3333
"renderdeep": "1084",
34-
"size": "TODO"
34+
"size": "5.9/9.6"
3535
},
3636
{
3737
"npm": "216113.0.3",
@@ -50,7 +50,7 @@
5050
"sixspeed": "431",
5151
"renderflat": "878",
5252
"renderdeep": "1208",
53-
"size": "TODO"
53+
"size": "12/15"
5454
},
5555
{
5656
"npm": "-",
@@ -70,7 +70,7 @@
7070
"sixspeed": "410",
7171
"renderflat": "900",
7272
"renderdeep": "1350",
73-
"size": "TODO"
73+
"size": "5.9/9.6"
7474
},
7575
{
7676
"npm": "-",
@@ -90,7 +90,7 @@
9090
"sixspeed": "574",
9191
"renderflat": "900",
9292
"renderdeep": "1165",
93-
"size": "7.0/?"
93+
"size": "5.9/9.6"
9494
},
9595
{
9696
"npm": "-",

measure/scripts/measure.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function parseAndPrintTestResults(resultLines) {
5151
_.forEach(TESTS, (test, name) => {
5252
const testValues = parseTestValues(resultLines, test);
5353
const testAverage = _.round(_.mean(testValues));
54-
console.log(`"${name}": "${testAverage}",`);
54+
console.log(`"${name}": "${testAverage}"`);
5555
});
5656
console.log('\n\n\n');
5757
}

0 commit comments

Comments
 (0)