[問題]計算CPU執行程式時間

作者: ming790925 (MING)   2015-04-12 17:02:41
文章分類提示:
問題
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我寫了一個 simulation 方法的程式
想與某一方法比較程式執行時間
因此我搜尋了一下幾個可以計算時間差的函數:
proc.time()
system.time()
Sys.time()
我研究一下他的說明看起來好像大同小異
但算出的時間有時卻不太相同
想請教一下各位大大
在比較兩程式執行時間 會偏好用哪種計算方法比較適當能說服人呢?
感激!!
[程式範例]:
proc.time()
system.time()
Sys.time()
[環境敘述]:
> sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
[關鍵字]:
CPU Time, System Time, compute, function time
作者: celestialgod (天)   2015-04-12 17:20:00
system.time是用proc.time包起來...Sys.time只有現實時間,CPU時間應該不一定一致
作者: ming790925 (MING)   2015-04-12 17:28:00
sorry 內文程式打成城市 請見諒!!
作者: celestialgod (天)   2015-04-12 17:34:00
你可以按E修改
作者: ming790925 (MING)   2015-04-12 17:37:00
謝! 所以CPU每次執行時間都不同嗎?那該怎麼比較好呢?
作者: celestialgod (天)   2015-04-12 17:59:00
看目的吧,你比程式效率通常是用proc.timeor system.time
作者: ming790925 (MING)   2015-04-13 19:41:00
請教一下:proc.time會算三個時間為user/system/elapse我對電腦背景沒有那麼足夠所以有點分不出前兩個差別,我算出結果覺得elapsed算的跟Sys.time好像是一樣的所以我想我應該是要用user/system這兩個其中之一,但我看不太懂他的差異 不知可否有人給點提示 THXhttp://www.ats.ucla.edu/stat/r/faq/timing_code.htm我看這個也實在是霧煞煞阿...
作者: celestialgod (天)   2015-04-13 22:21:00
簡單來說,SYSTEM是cpu時間,ELAPSED等同用Sys.timeuser就是你執行程式的時間畫一個TIME LINE來看,前後段就是USER TIME中段是程式執行時間(cpu TIME)這兩個時間相加就是elapsed time

Links booklink

Contact Us: admin [ a t ] ucptt.com