gettickcount怎么获取程序运行时间?代码示例一看就会。

吉云

最近在捣鼓一段代码,感觉跑起来有点慢,心里就琢磨着,得想个法子看看它到底慢在哪儿,具体花多少时间。

一开始也没想太复杂,就想着找个简单直接的办法。翻翻以前的笔记,还有印象里Windows好像自带些计时的小工具。果不其然,找到一个叫 GetTickCount 的函数。

看着挺顺眼,就决定试试它。用法嘛也确实不难。

gettickcount怎么获取程序运行时间?代码示例一看就会。

我的实践步骤

要在代码里用它,得先告诉编译器我要用Windows的东西。所以在代码文件开头,我加上:

cpp

#include

这步不能少,不然编译器不认识GetTickCount是个

gettickcount怎么获取程序运行时间?代码示例一看就会。

就在我那段感觉慢的代码前面,我加一行代码,找个地方存一下当前的时间点:

cpp

DWORD startTime = GetTickCount();

这个DWORD就是个类型,存个整数用的,startTime就是我给这个时间点起的名字。GetTickCount()一执行,就把电脑开机到现在过多少毫秒给返回来,存到startTime里。

然后,就是我原来那段需要测试时间的代码,该咋跑还咋跑,不动它。

gettickcount怎么获取程序运行时间?代码示例一看就会。

等那段代码跑,紧我再加一行:

cpp

DWORD endTime = GetTickCount();

跟前面一样,这回是把代码跑完那个时间点的毫秒数存到endTime里。

一步,就算算这中间差多少呗:

gettickcount怎么获取程序运行时间?代码示例一看就会。

cpp

DWORD duration = endTime - startTime;

这个duration,就是我那段代码大概跑多少毫秒。想看结果的话,把它打印出来就行。

用下来的感觉

GetTickCount这玩意儿用起来是真方便,特别是我这种临时想快速测一下某个代码块耗时的情况。

gettickcount怎么获取程序运行时间?代码示例一看就会。

  • 就那么几行代码,很简单。
  • 不用管什么复杂的计时器设置。
  • 返回的是毫秒,对我来说,多数情况下精度够用。

它也不是万能的。这个函数返回的是系统启动以来的毫秒数,是个整数。据说如果电脑连续开机时间太长(比如超过个几十天),这个数值可能会重新从0开始,导致计算出错。不过我平时用也就是测个几秒、几分钟的事,碰不到这种情况。

gettickcount怎么获取程序运行时间?代码示例一看就会。

还有就是它的精度是毫秒级,如果你要测的代码跑得飞快,比如零点零几毫秒就完事,那用它可能就测不准,结果可能是0。但对我这回测试的那段“慢”代码,它完全够使。

这回用GetTickCount的经历挺顺利的。帮我快速定位代码里比较耗时的地方,省不少事。以后再遇到类似要简单测个时的情况,我估计还会优先考虑它。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]