我通过谷歌搜索了一些代码:
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()它运行良好。我希望它显示毫秒,因为计算机可能计算得如此之快。
答案 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!