測試方法
- 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+線程:平均來算,小核也要調度多余一個線程的情況。