如何了解 Android 设备上内核的相对性能?

问题描述 投票:0回答:1

有时,我们需要知道一台物理 Android 设备有多少个快速/中级/慢速核心,以便能够将线程固定到它们以进行计算密集型活动。有没有办法在运行时找出来?流通中的模型太多,无法在应用程序中列出。

android multithreading arm64
1个回答
0
投票

这是由 Linux 内核提供的。从 ADB shell:

$ ls -l /sys/devices/system/cpu/cpu*/cpu_capacity
-r--r--r-- 1 root root 4096 2024-02-18 13:20 /sys/devices/system/cpu/cpu0/cpu_capacity
-r--r--r-- 1 root root 4096 2024-02-18 13:20 /sys/devices/system/cpu/cpu1/cpu_capacity
...
-r--r--r-- 1 root root 4096 2024-02-18 13:20 /sys/devices/system/cpu/cpu7/cpu_capacity

文件的内容给出了 CPU 的相对性能:

$ cat /sys/devices/system/cpu/cpu*/cpu_capacity
397
397
397
397
1003
1003
1003
1024 

数字经过标准化处理,设备上最快的 cpu 报告为 1024,较慢的 cpu 报告为较小的数字。这些数据来自运行 Android 14、内核 5.4.233 的三星 Galaxy A52 5G。

/sys
应该可以轻松地从应用程序中读取,而不是从 shell 中读取(我实际上并不生成应用程序,只是在 ADB shell 中测试的库)。

这适用于我可用的最旧的 Android,即内核为 4.14 的无名 Android 10 设备。编号较高的内核通常速度最快,但情况并非总是如此:运行 Android 12(内核 4.19)的三星 Galaxy Tab 7A Lite 编号越低,内核速度越快。

© www.soinside.com 2019 - 2024. All rights reserved.