看板 Programming 關於我們 聯絡資訊
最近寫一支演算法~要來計算他的執行時間 可是發現例如跑10次會有4~5次 執行時間是在一個常數的數值 然後大約3~4次會時間大約偏高 1.2次偏低 (而且執行時間都會一樣) "舉例"數據會長這樣 1 1 1 2 1 1 3 1 2 3 單位:毫秒 計算執行時間是抓CPU的clock來計算!! 使用VS C++ 有這個涵式可以用 問題來了~我想問說有時偏高的數據中最高跟最低會差到50毫秒左右 在執行的時候也都關掉不必要的應用程式 是否OS本身一些作業的關係 它的優先權比使用者的應用程式高 所以導致先中斷去執行 再回來去做我的運算?? PS每次跑10次都有發現這樣的問題 不是連續跑10次而是分開來執行 執行完一次在執行下一次(這裡因為避免存到cache) 演算法只是做一些運算 沒有寫到IO的部分@@ 不知道有沒有人遇過這樣的問題>"< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.196.4
ericinttu:時間精準度的必要性? real-time system? 59.117.114.83 09/03 05:21
ericinttu:50ms 的誤差, 嚴重與否, 要看你應用的領 59.117.114.83 09/03 05:23
ericinttu:域, 這沒講出來, 只能憑個人感覺來判斷 59.117.114.83 09/03 05:23
ericinttu:時間誤差的嚴重性了 59.117.114.83 09/03 05:24
ericinttu:另外,計算時間的方式也是有優劣好壞之別 59.117.114.83 09/03 05:54
costbook:通常都是算Big-O吧 120.124.134.62 09/03 09:31
yauhh:對啊,會被時脈和程序切換影響.所以很難做. 211.21.94.199 09/03 09:42
yauhh:你可以用windows內建的perf程式檢視每次執行 211.21.94.199 09/03 09:43
yauhh:資訊.至於程式評估就看怎麼把數據統計處理了 211.21.94.199 09/03 09:44
ericinttu:學術偏理論都會附上Big-O, 學術偏應用會 59.117.114.83 09/03 10:06
ericinttu:說明使用系統、環境與執行時間 59.117.114.83 09/03 10:06
ericinttu:業界不清楚, 但應該類似後者 59.117.114.83 09/03 10:07
MOONRAKER:看不懂那個 1 1 1 2 1 1 3 是怎樣… 59.120.168.228 09/03 17:12
MOONRAKER:整個演算法執行只要1ms?那誤差也太大 59.120.168.228 09/03 17:13
MOONRAKER:這樣計算有什麼意義… 59.120.168.228 09/03 17:13
ericinttu:給樓上, 誤差的原因: 1. 原程式本身 59.117.114.83 09/03 19:51
ericinttu:2. 計時的寫法 3. 時間的計量單位 59.117.114.83 09/03 19:52
utomaya:有一個方法 可以測精準時間 58.115.143.178 09/03 21:58
utomaya:寫一個迴圈 讓他跑n次 總時間再除以n 58.115.143.178 09/03 21:59
ericinttu:樓上的也是一個方法, 運用統計概念去求 59.117.124.120 09/04 00:57
yauhh:不是,Big-O只是與統計數字相同的一個總和數,218.160.210.166 09/04 08:01
yauhh:而Big-O不是實際計算而迴歸來的.218.160.210.166 09/04 08:02
yauhh:實測時就是跑不同次數的多次,n1,n2,...nk,218.160.210.166 09/04 08:03
yauhh:在二維圖上打點,然後看要求平均會是迴歸..218.160.210.166 09/04 08:04
MOONRAKER:給e先生:你講的跟他 1 1 1 2 1 1 3 有 59.120.168.228 09/04 16:45
MOONRAKER:什麼關係?我看不懂他寫啥 別扯別的 59.120.168.228 09/04 16:45
costbook:另一個辦法就是呼叫解析度更高的時間函數 120.124.134.62 09/05 13:02
costbook:你要計算ms,就用計算us的函數去計算 120.124.134.62 09/05 13:02
costbook:(解析度?用解析度好像不太對...) 120.124.134.62 09/05 13:03
costbook:我之前有爬過類似的文,連結忘記放哪了 120.124.134.62 09/05 13:04
sunneo:我想costbook想說的是精準度 140.127.114.41 09/05 21:42
meto000:執行時間會有1~3倍的差異喔?還是測量問題?210.241.123.132 09/08 10:01