如何让g ++显示终端的执行时间?

时间:2014-03-02 20:54:31

标签: c++ linux g++

我想让g ++告诉我什么是执行时间,也许也是返回。

g++ file.cpp -o file
./file

当我制作可执行文件然后调用它时,它只显示没有返回和执行时间的输出。

我想让它显示出类似的东西:

Process returned 0 (0x0)    execution time : 0.002 s

感谢您的关注!

4 个答案:

答案 0 :(得分:7)

您可以按如下方式使用时间命令:
 time ./file

答案 1 :(得分:6)

您可以使用“time”命令衡量流程所需的时长。

要确定返回值,可以打印$的值吗?运行程序后的环境变量:

time ./file ; echo Process returned $?

您还可以使用-f(或--format)选项指定格式化其结果的确切时间。 但是,某些Linux发行版默认情况下可能会使用bash-builtin时间实现而缺少该选项,因此您可能必须提供使用真实时间程序的完整路径:

/usr/bin/time -f "Execution time: %E" ./file

答案 2 :(得分:2)

首先看一下:calculating execution time in c++

您还可以在代码中使用时钟(来自time.h)(尽管对于多线程代码,它的工作方式很有趣)

int a;
unsigned t0 = clock(), t1;
std::cin >> a;
t1 = clock() - t0;

答案 3 :(得分:0)

仔细阅读time(7)。您可以在外部使用time(1)(来自您的shell,例如answered here)。您也可以在程序中使用系统调用,如clock_gettime(1)等...

不要指望时间对于小延迟(例如不到半秒)真正有意义或准确。

顺便说一下,你的问题与GCC 编译器(即g++)没什么关系。如果使用最近的GCC 4.8-std=c++11,你可以使用std::chrono等等......即使使用这些,也不是编程器为你的程序计时(但是一些库函数使用{ {3}})