2024-03-01
其他
00
请注意,本文编写于 447 天前,最后修改于 396 天前,其中某些信息可能已经过时。

原理: QueryPerformanceCounter()这个函数返回高精确度性能计数器的值,它可以以微妙为单位计时.但是QueryPerformanceCounter()确切的精确计时的最小单位是与系统有关的,所以,必须要查询系统以得到QueryPerformanceCounter()返回的嘀哒声的频率.

QueryPerformanceFrequency()提供了这个频率值,返回每秒嘀哒声的个数.

计算确切的时间是从第一次调用QueryPerformanceCounter()开始的假设得到的LARGE_INTEGER为t1,过一段时间后再次调用该函数结束的,设得到t2.两者之差除以QueryPerformanceFrequency()的频率就是开始到结束之间的秒数.由于计时函数本身要耗费很少的时间,要减去一个很少的时间开销.但一般都把这个开销忽略。

高精度版本:

cpp
#include<iostream> #include<windows.h> int main(){ //输入 LARGE_INTEGER t1,t2,tc; QueryPerformanceFrequency(&tc); QueryPerformanceCounter(&t1); //要检查的代码 QueryPerformanceCounter(&t2); double time=(double)(t2.QuadPart-t1.QuadPart)/(double)tc.QuadPart; cout<<"time = "<<time*1000<<"ms"<<endl; return 0; }

本文作者:KID

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!