测试方法
- 24MB的一张4K图片,连续计算5次直方图。
- 小米mix2s, 高通骁龙 845。4大核,4小核。
数据表格
线程数 | 绝对时间(s) | 累计CPU时间(s) | 每线程平均耗时(us) | 每线程最大耗时(us) | 每线程最小耗时(us) |
---|---|---|---|---|---|
1 | 0.61 | 0.58 | 587046 | 587046 | 587046 |
2 | 0.60 | 1.18 | 588503.5 | 588689 | 588318 |
3 | 0.61 | 1.76 | 587499.7 | 588286 | 586093 |
4 | 0.64 | 2.35 | 604698.3 | 621798 | 590103 |
5 | 0.75 | 3.26 | 657402.2 | 723562 | 596115 |
6 | 0.90 | 4.09 | 693556.8 | 872494 | 586573 |
7 | 0.90 | 4.95 | 724761.4 | 873561 | 601295 |
8 | 0.95 | 5.78 | 752522.5 | 932782 | 590163 |
9 | 1.05 | 6.65 | 828028.8 | 1021817 | 603812 |
10 | 1.11 | 7.53 | 941308.7 | 1089352 | 800818 |
11 | 1.16 | 8.32 | 1035326.9 | 1138341 | 804851 |
12 | 1.23 | 9.19 | 1146151 | 1186803 | 975380 |
13 | 1.33 | 9.96 | 1192113.5 | 1282736 | 810042 |
14 | 1.45 | 10.71 | 1299307.3 | 1420515 | 1158541 |
数据图表
结论
是否存在一个进程只能用四个大核,或者只能用四个小核的情况?
不会,四个大核和四个小核都被启用了。
数据曲线的分档:
性能的差别大致可以分为以下四档:
- 1-4个线程:全部用大核
- 5-8个线程:一半计算用了大核,一半计算用了小核。大核的计算性能平均是小核的1.42倍,最大约1.7倍。
- 9-12个线程:测试是否大核上调度了两个线程,而小核上只调度一个线程?不是的,不是一次计算始终在一个核上(否则打印出线程的绝对起止时间就会发现排队的现象,但实际测试并未发现排队,说明比如被CPU交错调度了)
- 13+线程:平均来算,小核也要调度多余一个线程的情况。