【发布时间】:2016-10-05 10:59:40
【问题描述】:
我正在尝试获得真正的最大 cpu 核心速度。
此代码仅适用于我的 nexus 5x 的前四个核心,但对于后两个核心则失败:
for (int i = 0; i < cpuCoresNumber; i++) {
try {
BufferedReader freqBufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("/sys/devices/system/cpu/cpu" + i + "/cpufreq/scaling_max_freq"))));
int freq = Integer.valueOf(freqBufferedReader.readLine()).intValue() / 1000;
freqBufferedReader.close();
coreMaxFreqArray[i] = freq;
} catch (Exception e) {
e.printStackTrace();
}
}
对于前 4 个,我得到真实值,对于最后 2 个,我首先得到真实值,但有时我得到较低的值,例如 600、300、0.... 以及最后两个核心的真实值是 1800 兆赫。
【问题讨论】:
-
一些快速的谷歌搜索给了我这个:“SoC 节流也是另一个显着减慢 Nexus 5x 的主要问题。”Snapdragon 808 只能将其两个 A57 内核保持在峰值频率两个Anandtech 在 Nexus 5X 系统性能评测中说4 个 1.44GHz 的 A53 内核。""
-
是的,但我可以在谷歌播放的某些应用程序中看到内核的最大速度,这些应用程序正在检查这些内核的最大速度,所以我确信可以在某处检查它
-
你试过获取
"cat /sys/devices/system/cpu/cpu" + i + "/cpufreq/scaling_available_frequencies"的结果并选择最大的数吗? -
@Michael 尝试过,但结果完全相同。当 cpu 返回 0 值时,该文件不可用。当另一个文件的可用值较少时,可用值也较少...
-
您有没有找到可靠的方法?我在 Snapdragon 835 设备上仅获得前 4 个较慢内核的最大频率时遇到了同样的问题。