queryperformancecounter使用方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
queryperformancecounter使用方法
一、什么是QueryPerformanceCounter
QueryPerformanceCounter是一个Windows API,它可以获取一个非常精确的时间计数器(以百万分之一秒为单位)。
它使得开发人员可以更准确的测量程序的执行时间,使得程序的效率可以进一步提高。
二、使用QueryPerformanceCounter
使用QueryPerformanceCounter需要定义一个LARGE_INTEGER类型的变量,用来存放获取到的计数器值:
LARGE_INTEGER start_time;
然后调用QueryPerformanceCounter函数获取计数器的值:
QueryPerformanceCounter(&start_time);
最后可以把当前计数器的值减去之前保存的旧计数值来计算出程序运行的时间:
LARGE_INTEGER end_time;
QueryPerformanceCounter(&end_time);
LARGE_INTEGER time_diff;
time_diff.QuadPart = end_time.QuadPart -
start_time.QuadPart;
//计算得到的time_diff是以百万分之一秒为单位,可以转换为更适合人们理解的单位处理:
LARGE_INTEGER performance_frequency;
QueryPerformanceFrequency(&performance_frequency);
__int64 total_time = time_diff.QuadPart * 1000 / performance_frequency.QuadPart;
//total_time的单位就是毫秒
三、 QueryPerformanceCounter优缺点
QueryPerformanceCounter优点:
1、可以获取非常精确的时间计数器,可以准确的测量时间;
2、开发人员可以利用这个函数来检查程序的效率,并发现程序的缺陷。
QueryPerformanceCounter缺点:
1、很多机器并不支持该函数,所以发布程序时要注意它的支持性;
2、从性能角度来看,QueryPerformanceCounter有可能会比普通的时间函数要慢一些,所以要根据实际情况来决定使用哪个时间函数。