如何在C ++中运行运行函数的时间

时间:2011-03-12 14:17:52

标签: c++ elapsedtime

我通过谷歌搜索了一些代码:

clock_t start, end;
start = clock();
//CODES GOES HERE
end = clock();
std::cout << end - start <<"\n";
std::cout << (double) (end-start)/ CLOCKS_PER_SEC;

但结果经过的时间总是0,即使是

std::cout << (double) (end-start)/ (CLOCKS_PER_SEC/1000.0 );

不知道为什么,但是当我在Java中得到类似的东西时:getCurrentTimeMillis()它运行良好。我希望它显示毫秒,因为计算机可能计算得如此之快。

3 个答案:

答案 0 :(得分:1)

我不认为clock具有足够高的分辨率来分析您的功能。如果你想知道一个函数执行的速度有多快,你应该运行它几千次而不是一次,测量它所花费的总时间并取平均值。

答案 1 :(得分:1)

#include <boost/progress.hpp>

int main()
{
    boost::progress_timer timer;
    // code to time goes here
}

这将打印出运行main所需的时间。您可以将代码放在作用域中以计算几个部分,即{ boost::progress_timer timer; ... }

答案 2 :(得分:0)

这个问题与你的问题类似:Timing a function in a C++ program that runs on Linux

看看this answer