[問題] 計算執行時間 clock()的準確度

看板C_and_CPP (C/C++)作者 (大雄)時間16年前 (2010/02/03 21:09), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 因為要跑比較精準的程式,所以採用了較高權限的Timer- Multi Media Timer 但是遇到一個問題,我需要計算Timer總共執行了多久 雖然在timeSetEvent中,我delay時間設定成1ms 但是一段程式不見得可在1ms結束,所以整個Timer應該會跑超過1ms 所以我就在Timer開始時 設了一個變數 m_StartTime = clock() ; 我暫時設定每次Timer執行的程式,都會執行 m_Count++ ; 然後在我要GetCurrentTime()時 得到 clock() - m_StartTime 問題來了,我得到的結果... 時間 次數 984 994 為什麼1ms才跑一次的Timer,整個執行次數會比時間984ms還多 是我使用MMTimer的方法不對還是觀念有問題,還是clock()的問題?? 希望得到的正確結果: 準確得到Timer目前跑了多少ms 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) 未來是要寫在BCB上,目前我使用VC++2008測試 有問題的code: (請善用置底文標色功能) 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.88.208

02/03 21:23, , 1F
Sleep()本來就不準..clock()也不準..
02/03 21:23, 1F

02/03 21:24, , 2F
我都是用QueryPerformanceCounter()來量測
02/03 21:24, 2F

02/03 21:30, , 3F
performance counter +1
02/03 21:30, 3F

02/03 21:31, , 4F
如果做事的時間太少,做個1000遍再來計時也可以
02/03 21:31, 4F

02/03 21:39, , 5F
感謝 爬文有爬到PerformanceCounter的用法 感恩!!
02/03 21:39, 5F

02/03 21:54, , 6F
可是用了以後 時間:999 次數:1000
02/03 21:54, 6F

02/03 21:54, , 7F
次數還是比時間多耶QQ
02/03 21:54, 7F

02/03 21:56, , 8F
阿阿抱歉抱歉 時間從0開始 次數從1開始 我笨了
02/03 21:56, 8F
文章代碼(AID): #1BQNM81q (C_and_CPP)
文章代碼(AID): #1BQNM81q (C_and_CPP)