0

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

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

4

3 回答 3

4

您可以随时间启动程序:

[:~/tmp] $ time sleep 1

real    0m1.007s
user    0m0.001s
sys     0m0.003s
于 2014-03-02T00:05:34.810 回答
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()。在这两种情况下,代码的工作方式可能非常相似。

于 2014-03-02T00:09:35.687 回答
0

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

于 2014-03-02T00:08:00.353 回答