无法在设备中获得处理器速度

时间:2010-12-23 08:44:59

标签: c++ windows windows-ce winapi

您好我正在使用QueryperformanceFrequency获取周期数,即处理器速度。 但它告诉我错误的价值。它在规范中写的是处理器大约400MHz,但我们通过代码获得的是16MHz。

请提供任何指针:

Wince设备的代码是:

LARGE_INTEGER FrequnecyCounter;

QueryPerformanceFrequency(&FrequnecyCounter);

CString temp;

temp.Format(L"%lld",FrequnecyCounter.QuadPart)`AfxMessageBox(temp);

谢谢,

穆克什

2 个答案:

答案 0 :(得分:2)

QueryPerformanceFrequency返回非处理器的计数器外围设备的频率。这些外设通常以原始晶振时钟频率运行。 16Mhz应该足够好,可以测量细粒间隔。

答案 1 :(得分:1)

QPF不返回CPU时钟速度。它返回 a 高性能计时器的频率。在少数系统上,它实际上可能会测量CPU周期。在其他系统上,它可能使用以相同频率运行的单独计时器。 (但不受SpeedStep等可以改变CPU时钟速度的影响)。通常,它完全使用一个单独的计时器,一个甚至可能不在CPU本身,但可能是主板的一部分。

QueryPerformanceCounter / QueryPerformanceFrequency仅承诺他们使用系统上可用的最佳计时器。他们对这个计时器可能没有任何承诺。