1
如何衡量一個函數需要多長時間在C++來執行?如果我能把時間縮短到幾分之一毫秒,那將是最好的,但如果不到1毫秒的精度就足夠了。如果這意味着什麼,我正在運行Ubuntu 11.04。
如何衡量一個函數需要多長時間在C++來執行?如果我能把時間縮短到幾分之一毫秒,那將是最好的,但如果不到1毫秒的精度就足夠了。如果這意味着什麼,我正在運行Ubuntu 11.04。
#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;
}
性能測量的最佳時鐘是系統範圍的實時時鐘。在Linux中,您可以使用或CLOCK_MONOTONIC_RAW
的clock_gettime
函數。那些會給你納秒級的精度。
這是非常低精度的近似值而不是經過時間。 CLOCKS_PER_SEC的劃分也看起來很奇怪,因爲這是一個硬編碼的宏,並不代表每秒的時鐘數。另外,它不是一個掛鐘。所以如果你的實時過程被換出,它會給你一些完全奇怪的結果......: - ] – 2011-06-24 20:39:24
這會有多準確? –
@Vlad:clock_gettime是一個很好的選擇,我想.. –