QueryPerformanceFrequency高精度计时

发布时间:2016-12-8 2:16:08 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"QueryPerformanceFrequency高精度计时",主要涉及到QueryPerformanceFrequency高精度计时方面的内容,对于QueryPerformanceFrequency高精度计时感兴趣的同学可以参考一下。

利用这两个函数可以创建跟硬件时钟的晶振一样精确的计时器。 在进行定时之前,先调用QueryPerformanceFrequency()函数获得机器内部定时器的时钟频率, 然后在需要严格定时的事件发生之前和发生之后分别调用QueryPerformanceCounter()函数,利用两次获得的计数之差及时钟频率,计算出事件经 历的精确时间。1.如下函数查询cpu时钟频率,(如我的cpu是2.89GHz,得到2893460000)BOOL QueryPerformanceFrequency( LARGE_INTEGER *lpFrequency   // current frequency);2.再获取高精确度性能计数器的值BOOL QueryPerformanceCounter(  LARGE_INTEGER *lpPerformanceCount   // counter value);计数器的值除以频率得到当前系统运行时间(秒):LARGE_INTEGER  startTime = (*lpPerformanceCount) /(*lpFrequency )3.运行所需计时的代码段后再次获取性能计数器的值BOOL QueryPerformanceCounter(  LARGE_INTEGER *lpPerformanceCount2   // counter value);计数器的值除以频率得到当前系统运行时间(秒):LARGE_INTEGER endTime =(*lpPerformanceCount2) /(*lpFrequency )4.endTime-startTime即为两次调用QueryPerformanceCounter期间的精度计时时间。这结果是秒级的,如果要更精确的可以将时钟频率除以相应值再作后面计算。如要获得毫秒级的:LARGE_INTEGER  tick=*lpFrequency/1000  LARGE_INTEGER  startTime = (*lpPerformanceCount) /tickLARGE_INTEGER endTime =(*lpPerformanceCount2) /tickendTime - startTime

上一篇:opencv将视频序列转换为图像序列保存
下一篇:CSS3动画——也在3 d

相关文章

相关评论