如何跟踪计划的总时间?

时间:2014-03-02 00:04:16

标签: c++ time ctime

通常在IDE中,当您运行程序时,IDE将告诉您运行程序所花费的总时间。有没有办法获得在Unix / Linux中使用终端编译和运行时运行程序所需的总时间?

我知道ctime允许获得自1970年以来的总时间,但是我想得到程序运行所需的时间。

3 个答案:

答案 0 :(得分:4)

您可以按时启动程序:

[:~/tmp] $ time sleep 1

real    0m1.007s
user    0m0.001s
sys     0m0.003s

答案 1 :(得分:1)

你走在正确的轨道上!您可以获取当前时间并从程序的结束时间中减去它。下面的代码说明了:

time_t begin = time(0);   // get current time

// Do Stuff //

time_t end = time(0);   // get current time

// Show number of seconds that have passed since program began //
std::cout << end - begin << std::endl;

注意:时间粒度只有一秒钟。如果您需要更高的粒度,我建议在Windows上查看精确定时器,例如QueryPerformanceCounter()或在Linux上查看clock_gettime()。在这两种情况下,代码可能会非常相似。

答案 2 :(得分:0)

作为mdsl答案的附录,如果你想在程序本身中获得接近该测量的东西,你可以在程序开始时获得时间并在程序结束时获得时间(如你所说) ,自1970年以来的时间) - 然后从结束时间减去开始时间。