您好我正在使用QueryperformanceFrequency获取周期数,即处理器速度。 但它告诉我错误的价值。它在规范中写的是处理器大约400MHz,但我们通过代码获得的是16MHz。
请提供任何指针:
Wince设备的代码是:
LARGE_INTEGER FrequnecyCounter;
QueryPerformanceFrequency(&FrequnecyCounter);
CString temp;
temp.Format(L"%lld",FrequnecyCounter.QuadPart)`AfxMessageBox(temp);
谢谢,
穆克什
答案 0 :(得分:2)
QueryPerformanceFrequency返回非处理器的计数器外围设备的频率。这些外设通常以原始晶振时钟频率运行。 16Mhz应该足够好,可以测量细粒间隔。
答案 1 :(得分:1)
QPF不返回CPU时钟速度。它返回 a 高性能计时器的频率。在少数系统上,它实际上可能会测量CPU周期。在其他系统上,它可能使用以相同频率运行的单独计时器。 (但不受SpeedStep等可以改变CPU时钟速度的影响)。通常,它完全使用一个单独的计时器,一个甚至可能不在CPU本身,但可能是主板的一部分。
QueryPerformanceCounter / QueryPerformanceFrequency仅承诺他们使用系统上可用的最佳计时器。他们对这个计时器可能没有任何承诺。