从这些中,函数返回以Hz为单位的值
QueryPerformaceFrequency()
Units of QueryPerformanceFrequency
运行intel Core i5 - 以2.8 G Hz
运行该功能似乎返回 M Hz?
调试器中的值为 1,328,261
我在这里缺少什么?
错误地使用该功能(如下)?
LARGE_INTEGER li;
QueryPerformanceFrequency(&li);
printf("Ticks: %f\n", double(li.QuadPart) );
答案 0 :(得分:2)
QueryPerformanceFrequency返回性能计数器的频率,而不是CPU的时钟频率。这些并不是一回事,尽管它们似乎是一种常见的误解。
我强调documentation说:
指向接收当前变量的变量的指针 性能计数器频率,每秒计数。
所以,你所拥有的是以Hz为单位测量的性能计数器频率。
对于它的价值,如果这样,我就不打印。这是一个整数值。最好保持这种打印方式。因此,假设您使用MS编译器,可以像这样打印:
printf("Ticks: %I64d\n", li.QuadPart);