1

从这些看来,函数返回以 Hz 为单位的值

QueryPerformaceFrequency()
QueryPerformanceFrequency 的单位

运行英特尔酷睿 i5 - 以 2.8 G Hz运行

该函数似乎返回M Hz ?

调试器中的值为1,328,261

  • 为什么值只有 7 位?
  • 为什么该值不反映2 Ghz?(即 2,8 .....)

我在这里想念什么?

错误地使用函数(下)?

LARGE_INTEGER li;
QueryPerformanceFrequency(&li);
printf("Ticks: %f\n", double(li.QuadPart) );
4

1 回答 1

2

QueryPerformanceFrequency 返回性能计数器的频率,而不是 CPU 的时钟频率。这些不是一回事,尽管它们似乎是一个常见的误解。

文件说,我强调:

指向接收当前性能计数器频率的变量的指针,以每秒计数为单位。

因此,您所拥有的是以 Hz 为单位测量的性能计数器频率。

对于它的价值,我不会那样打印。它是一个整数值。最好保持这种方式进行打印。因此,假设您使用 MS 编译器,您可以像这样打印它:

printf("Ticks: %I64d\n", li.QuadPart);
于 2013-11-10T09:06:19.750 回答