怎样在程序中精确计时

2025-04-17 21:38:15

在编写一些游戏程序时,常常需要高精度计时,普通的计时分辨率已经满足不了要求。那么,烂瘀佐栾这该如何是好呢?下面,我们就以用 VS2013 中编写一个高精度计时程序为例,来教大家具体的方法。

工具/原料

VS2013

一、函数简介

1、要进行高精度计时,需要用到两个函数:兑恶铼融QueryPerformanceFrequencyQueryPerformanceCounter要使用这两个函数,需要包含头文件Winbase.h ( 包含于 Windows.h 中)。

怎样在程序中精确计时

2、QueryPerformanceFrequency 函数的说明如图所示。

怎样在程序中精确计时

3、QueryPerformanceCounter 函数的说明如图所示。

怎样在程序中精确计时

4、这两个函数均需要用到一个 LARGE_INTEGER 结构,该结构的介绍如图所示。

怎样在程序中精确计时

二、用法

1、利用以上两个函数获得精确计时的方法如图所示。

怎样在程序中精确计时

三、示例

1、现在,我们利用以上函数对系统中的 Sleep 函数的精确度作一下考量,测试一下 Sleep(1000) 的误差范围大概是多大。

2、在程序中,定义三个LARGE_INTEGER 结构变量,分别用它们来获取时钟分辨率、开始和结束计时,最后在屏幕上输出结果。

怎样在程序中精确计时

3、以下是运行结果截图。可以看出,Sleep函数的精确度相对而言还是比较差的。

怎样在程序中精确计时
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢