我認爲測量程序效率的最好方法是通過檢查它運行的時間,但是當我這樣做的時候,我總是得到隨機時間。C/C++測量程序效率
我用下面的代碼爲this這個線程所示羅傑·佩特:
#include <ctime>
void func()
{
using namespace std;
clock_t begin = clock();
//Function to measure here
clock_t end = clock();
double elapsed_secs = double(end - begin)/CLOCKS_PER_SEC;
}
我認爲這正在發生的事情,因爲我有在後臺運行一些程序。
我不想重新啓動我的電腦每次我想重新檢查我的功能的時間,所以我的問題是:有沒有更好的方法來衡量程序的效率?
IDE是Codeblocks,OS是Win7 64bit。
這些可能是:1,優化相關的(也許你測量代碼得到優化掉......在這種情況下,結果是無效的),2組內存覆蓋(您的結果無效),3.上下文切換/ IO相關問題(這些是原子操作和鎖爭用可能會轉移性能相當多,所以結果是有效的,但各不相同)以及更多... **請發佈一個示例代碼,實際顯示問題**。 – Myst
你看到什麼是典型的時間? – user3386109
@CaptainGiraffe很確定它是'CLOCKS_PER_SEC'。 – Qix