我想让g ++告诉我什么是执行时间,也许也是返回。
g++ file.cpp -o file
./file
当我制作可执行文件然后调用它时,它只显示没有返回和执行时间的输出。
我想让它显示出类似的东西:
Process returned 0 (0x0) execution time : 0.002 s
感谢您的关注!
答案 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}})