我使用以下代码来获取cpu频率。
-(int) returnCPUFreq
{
size_t length;
int mib[6];
int result;
mib[0] = CTL_HW;
mib[1] = HW_CPU_FREQ;
length = sizeof(result);
sysctl(mib, 2, &result, &length, NULL, 0);
return result;
}
它提供了6位数代码,每次运行应用程序时都会有所不同。即输出是第一次644311,第二次是303921 .....
这段代码是否正确?每次运行应用程序时,值是否会有所不同?
答案 0 :(得分:4)
你的答案是对的。您可以通过检查sysctl(mib,2,& result,& length,NULL,0)<来检查wether sysctl是否返回错误。 0 但这不会改变任何频率的变化。这是因为Apple不允许读取所有产品的频率。
当你需要它来确定你可以启用多少细节或类似内容时,我会检查硬件模型并在nsdictionary中查找cpu频率,其中我放置了所有可用的硬件模型。