2011-06-24 189 views
1

可能重複過去:
fast elapsed time on linux測量時間在C++

如何衡量一個函數需要多長時間在C++來執行?如果我能把時間縮短到幾分之一毫秒,那將是最好的,但如果不到1毫秒的精度就足夠了。如果這意味着什麼,我正在運行Ubuntu 11.04。

回答

-2
#include <ctime> 
int main(){ 
    clock_t start = clock(); 
    // your program goes here 
    clock_t ends = clock(); 
    cout << "Time elapsed: " << (double) (ends - start)/CLOCKS_PER_SEC << endl; 
    return 0; 
} 
+2

這是非常低精度的近似值而不是經過時間。 CLOCKS_PER_SEC的劃分也看起來很奇怪,因爲這是一個硬編碼的宏,並不代表每秒的時鐘數。另外,它不是一個掛鐘。所以如果你的實時過程被換出,它會給你一些完全奇怪的結果......: - ] – 2011-06-24 20:39:24

+1

這會有多準確? –

+1

@Vlad:clock_gettime是一個很好的選擇,我想.. –

4

性能測量的最佳時鐘是系統範圍的實時時鐘。在Linux中,您可以使用或CLOCK_MONOTONIC_RAWclock_gettime函數。那些會給你納秒級的精度。