vc++中如何测试程序的运行时间

 我来答
cs359312530
2013-12-04 · TA获得超过148个赞
知道答主
回答量:6
采纳率:0%
帮助的人:13.4万
展开全部
基本的原理是在执行待测函数之前读取CPU的计数器,执行待测函数之后,再读取一遍,两个计数器之差,再除以CPU主频,就是待测函数执行所用时间。测试精度与CPU主频有关,一般可以精确到微秒量级。
读取CPU计数器的函数:QueryPerformanceCounter()
获取CPU计数器的函数:QueryPerformanceFrequency()
具体操作示范:
首先定义一下所需变量:
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;

在待测函数之前加入:
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 获得初始值

在待测函数加入:
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = (dfMinus*1000) / dfFreq;// 获得对应的时间值,单位为为毫秒

dfTim就是待测函数执行所需的时间了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式