2014-03-02 26 views
2

我想讓g ++向我展示什麼是執行時間,也許是回報。如何讓g ++在終端中顯示執行時間?

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

當我使可執行文件,然後調用它只顯示沒有返回和執行時間的輸出。

,我要讓它顯示是這樣的:

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

感謝您的關注!

+2

而是說'時間。/ file'並根據您的需求解析輸出。 – devnull

+0

shell捕獲'$?'變量中的退出狀態,所以'echo $?'顯示最近執行的命令的退出狀態。但我不知道如何在Windows命令提示符下執行此操作。 – Brian

回答

4

您可以使用「time」命令來測量您的過程需要多長時間。

要確定返回值,您可以打印$?的值。運行程序後,環境變量:

time ./file ; echo Process returned $? 

您還可以指定如何準確時間應與-f(或--format)選項設置其結果。 然而,一些Linux發行版可能會使用默認一個bash,內置的時間實現其缺乏一個選項,所以你可能不得不放棄使用真正時間程序的完整路徑:

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

可以使用time命令如下:此處
time ./file

1

先看看:calculating execution time in c++

您還可以在代碼中使用的時鐘(從time.h)(雖然多線程代碼它的工作原理有點有趣)

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

仔細time(7)閱讀。您可以在外部使用time(1)(從您的shell中,例如answeredhere)。你也可以使用你的程序系統調用,如clock_gettime(1)等...

不要指望時間對於小的延遲(例如不到半秒)是真正有意義或準確的。

順便說一句,你的問題與GCC 編譯器(即g++)沒有太大關係。如果使用的是最新GCC 4.8-std=c++11你可以使用std::chrono等等等等......而且,即使使用這些它不是正計時程序的編譯器(但使用syscalls一些庫函數)

相關問題