首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找c++执行时间

查找c++执行时间
EN

Stack Overflow用户
提问于 2010-08-04 03:59:06
回答 6查看 3.5K关注 0票数 5

我很好奇C++中是否有一个内置的函数来测量执行时间?我现在用的是Windows。在Linux中,这非常简单……

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-08-04 04:06:02

据我所知,在Windows上最好的方法是使用QueryPerformanceCounterQueryPerformanceFrequency

QueryPerformanceCounter(LARGE_INTEGER*)将性能计数器的值放入传递的LARGE_INTEGER中。

QueryPerformanceFrequency(LARGE_INTEGER*)将性能计数器递增的频率放入传递的LARGE_INTEGER中。

然后,您可以通过在执行开始时记录计数器,然后在执行结束时记录计数器来查找执行时间。从末尾减去起始值,得到计数器的变化,然后除以频率,得到以秒为单位的时间。

代码语言:javascript
复制
LARGE_INTEGER start, finish, freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
// Do something
QueryPerformanceCounter(&finish);
std::cout << "Execution took " 
    << ((finish.QuadPart - start.QuadPart) / (double)freq.QuadPart) << std::endl;
票数 4
EN

Stack Overflow用户

发布于 2010-08-04 04:01:57

这在Windows下也很简单--事实上,在<ctime>中定义的两个std::clock, d上的函数都是相同的

票数 2
EN

Stack Overflow用户

发布于 2010-08-04 04:05:28

您可以使用Windows API函数GetTickCount()比较开始和结束时的值。分辨率在16ms的范围内。如果出于某种原因,您需要更细粒度的计时,则需要考虑QueryPerformanceCounter

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3400309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档