每次新运行时CPU频率都会发生变化

时间:2012-12-27 09:20:47

标签: objective-c ios xcode

我使用以下代码来获取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 .....

这段代码是否正确?每次运行应用程序时,值是否会有所不同?

1 个答案:

答案 0 :(得分:4)

你的答案是对的。您可以通过检查sysctl(mib,2,& result,& length,NULL,0)<来检查wether sysctl是否返回错误。 0 但这不会改变任何频率的变化。这是因为Apple不允许读取所有产品的频率。

当你需要它来确定你可以启用多少细节或类似内容时,我会检查硬件模型并在nsdictionary中查找cpu频率,其中我放置了所有可用的硬件模型。