Skip to content

Hardcoder Benchmark

sophiaguo edited this page Nov 22, 2019 · 2 revisions

Hardcoder Benchmark

Benchmark 运行方法

使用项目中提供的 Testapp,编译与运行方法见 Hardcoder Testapp 测试指南,QuickStart 页面提供了打开 webview 与复杂运算两个测试用例。分别点击两个测试用例的 Auto Test 按钮,即可执行自动测试。

Benchmark 测试用例

用例 1:打开 webview

打开 webview 用例测试在不使用 Hardcoder 和使用 Hardcoder 两种情况下分别在新进程中启动 Activity 并打开 webview,统计 startActivity 开始到 webview 打开后 onPageFinished 回调的耗时。

Auto test 按钮会自动运行 10 次不使用 Hardcoder 的耗时和 10 次使用 Hardcoder 的耗时。为了减少网速的影响,相邻的两次测试分别为使用 Hardcoder 与不使用 Hardcoder,并且在结果中会去掉大于平均值 30% 的测试数据,在剩下的数据中取平均值作为本组测试结果。另外,每次测试间会停顿一段时间,待 CPU 频率趋向稳定再进行下一次测试。

测试结果中每组数值为 10 次的平均值,每台机型测试 10 组数据,共测试 100 次。

测试结果

单位 ms。

机型 HC 状态 1 2 3 4 5 6 7 8 9 10 Total 性能提升
Oppo R15 关闭 2118 1976 2057 2107 2129 1987 2154 2265 2164 2057 21014
打开 2000 1887 1967 1951 2018 1873 2022 2125 2037 1944 19824
94.43% 95.50% 95.62% 92.60% 94.79% 94.26% 93.87% 93.82% 94.13% 94.51% 94.34% 5.66%
Oppo R17 PRO 关闭 1920 1928 2019 1942 1945 2053 2133 2206 2276 2245 20667
打开 1824 1817 1923 1792 1863 1985 1979 2117 2186 2096 19582
95.00% 94.24% 95.25% 92.28% 95.78% 96.69% 92.78% 95.97% 96.05% 93.36% 94.75% 5.25%
小米MIX2s 关闭 2035 1816 2071 2071 2183 1888 1924 2069 1977 2131 20165
打开 1622 1526 1730 1730 1830 1569 1507 1705 1664 1822 16705
79.71% 84.03% 83.53% 83.53% 83.83% 83.10% 78.33% 82.41% 84.17% 85.50% 82.84% 17.16%
小米9 关闭 1939 2039 2074 1835 1832 1833 1691 1800 1836 2021 18900
打开 1789 1845 1794 1591 1667 1704 1551 1630 1639 1801 17011
92.26% 90.49% 86.50% 86.70% 90.99% 92.96% 91.72% 90.56% 89.27% 89.11% 90.01% 9.99%
vivo X27 关闭 2524 1996 2330 1903 1905 2411 2038 2139 2373 2273 21892
打开 2383 1864 2099 1780 1728 2235 1887 2019 2261 2111 20367
94.41% 93.39% 90.09% 93.54% 90.71% 92.70% 92.59% 94.39% 95.28% 92.87% 93.03% 6.97%
华为nova4 关闭 2394 2293 2164 2235 2144 2253 2410 2440 2484 2438 23255
打开 2094 1977 2049 2100 2023 2088 2115 2259 2275 2247 21227
87.47% 86.22% 94.69% 93.96% 94.36% 92.68% 87.76% 92.58% 91.59% 92.17% 91.28% 8.72%
三星W2018 关闭 2176 1853 2349 2168 1960 2053 1923 1910 2060 1908 20360
打开 1797 1671 1923 1958 1727 1726 1674 1706 1687 1629 17498
82.58% 90.18% 81.86% 90.31% 88.11% 84.07% 87.05% 89.32% 81.89% 85.38% 85.94% 14.06%
三星Galaxy A8s 关闭 2250 2210 2232 2269 2307 2158 2132 2190 2204 2276 22228
打开 2037 1942 2004 1957 1996 1959 1925 2009 1929 1911 19669
90.53% 87.87% 89.78% 86.25% 86.52% 90.78% 90.29% 91.74% 87.52% 83.96% 88.49% 11.51%
用例 2:复杂运算

复杂运算用例测试在不使用 Hardcoder 和使用 Hardcoder 两种情况下分别运行同一个比较复杂的运算的耗时。

Auto test 按钮会自动运行 10 次不使用 Hardcoder 的耗时和 10 次使用 Hardcoder 的耗时,取数据平均值作为本组测试结果。另外,每次测试间会停顿一段时间,待 CPU 频率趋向稳定再进行下一次测试。

测试结果中每组数值为 10 次的平均值,每台机型测试 10 组数据,共测试 100 次。

测试结果

单位 ms。

机型 HC 状态 1 2 3 4 5 6 7 8 9 10 Total 性能提升
Oppo R15 关闭 14325 14388 14181 14214 14201 14428 14495 14565 13561 14266 142624
打开 12067 12002 12083 12039 12088 12104 12117 12160 12082 12015 120757
84.24% 83.42% 85.21% 84.70% 85.12% 83.89% 83.59% 83.49% 89.09% 84.22% 84.67% 15.33%
Oppo R17 PRO 关闭 12598 12584 12576 12500 12614 12574 12572 12591 12578 12638 125825
打开 10731 10772 10761 10744 10720 10863 10789 10791 10783 10802 107756
85.18% 85.60% 85.57% 85.95% 84.98% 86.39% 85.82% 85.70% 85.73% 85.47% 85.64% 14.36%
小米MIX2s 关闭 7596 7462 7614 7383 7628 7712 7570 7635 7562 7600 75762
打开 6777 6731 7080 6851 7178 6782 6840 7079 6778 6819 68915
89.22% 90.20% 92.99% 92.79% 94.10% 87.94% 90.36% 92.72% 89.63% 89.72% 90.96% 9.04%
小米9 关闭 8932 8726 8623 8550 8603 8756 8714 8752 8706 8658 87020
打开 8819 8591 8627 8499 8547 8786 8689 8773 8688 8647 86666
98.73% 98.45% 100.05% 99.40% 99.35% 100.34% 99.71% 100.24% 99.79% 99.87% 99.59% 0.41%
vivo X27 关闭 8746 8764 8811 8861 8849 8682 8928 8814 9077 8771 88303
打开 8726 8655 8766 8822 8758 8664 8838 8750 9044 8745 87768
99.77% 98.76% 99.49% 99.56% 98.97% 99.79% 98.99% 99.27% 99.64% 99.70% 99.39% 0.61%
华为nova4 关闭 8701 7526 7339 7317 7336 7358 7361 7347 7343 7339 74967
打开 8630 7482 7348 7329 7353 7309 7375 7365 7343 7338 74872
99.18% 99.42% 100.12% 100.16% 100.23% 99.33% 100.19% 100.24% 100.00% 99.99% 99.87% 0.13%
三星W2018 关闭 8309 8272 8296 8246 8272 8212 8252 8262 8320 8306 82747
打开 7752 7698 7733 7703 7675 7662 7702 7705 7762 7747 77139
93.30% 93.06% 93.21% 93.41% 92.78% 93.30% 93.33% 93.26% 93.29% 93.27% 93.22% 6.78%
三星Galaxy A8s 关闭 11195 8693 8889 8807 8787 8822 8914 8859 8766 8800 90532
打开 9652 7469 7584 7566 7519 7527 7656 7587 7536 7497 77593
86.22% 85.92% 85.32% 85.91% 85.57% 85.32% 85.89% 85.64% 85.97% 85.19% 85.71% 14.29%

注意事项

  • Hardcoder 测试数据与当前 CPU 状态密切相关,单次测试数据可能出现不稳定状态,需要测试多组数据;
  • 不同机型 CPU 调度算法不一样,Hardcoder 性能提升的空间不一样,不同场景下的性能数据会有差别。一般来说,Hardcoder 在性能相对较差的手机上提升空间较大;
  • Benchmark 中只选取了测试数据相对比较稳定的两个用例,其他例如播放网络音视频等由于受网络影响比较大,没有选为 benchmark 用例。如开发者有场景测试需求,建议把项目 app 包名改为 testapp 包名直接测试项目场景;
  • 测试时请关闭后台其他应用,防止后台应用影响 CPU 频率;
  • 启动 testapp 后请先点击 initHardcoder 建立连接,显示Success为连接建立成功;
  • App 启动后或连接建立成功后等待约 5s 再进行测试,保证连接成功并且 CPU 处于相对稳定状态;
  • 打开 webview 使用的是 Hardcoder github 页面,有可能出现当前网络不能打开,此时耗时不准确;