QueryPerformanceFrequency与CPU速度不匹配?

聚苯乙烯

从中看来,该函数返回以Hz为单位的值

QueryPerformaceFrequency()
QueryPerformanceFrequency的单位

运行Intel Core 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) );
戴维·赫弗南

QueryPerformanceFrequency返回性能计数器的频率,而不是CPU的时钟频率。尽管这似乎是一个普遍的误解,但它们并非同一回事。

文档说,我的重点是:

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

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

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

printf("Ticks: %I64d\n", li.QuadPart);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章