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

看板R_Language作者 (MING)時間9年前 (2015/04/12 17:02), 9年前編輯推噓0(0019)
留言19則, 2人參與, 最新討論串1/1
文章分類提示: 問題 [問題類型]: 程式諮詢(我想用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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.114.12 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1428829363.A.DDD.html

04/12 17:20, , 1F
system.time是用proc.time包起來...
04/12 17:20, 1F

04/12 17:21, , 2F
Sys.time只有現實時間,CPU時間應該不一定一致
04/12 17:21, 2F

04/12 17:28, , 3F
sorry 內文程式打成城市 請見諒!!
04/12 17:28, 3F

04/12 17:34, , 4F
你可以按E修改
04/12 17:34, 4F
※ 編輯: ming790925 (140.113.114.12), 04/12/2015 17:36:06

04/12 17:37, , 5F
謝! 所以CPU每次執行時間都不同嗎?那該怎麼比較好呢?
04/12 17:37, 5F
※ 編輯: ming790925 (140.113.114.12), 04/12/2015 17:46:51

04/12 17:59, , 6F
看目的吧,你比程式效率通常是用proc.time
04/12 17:59, 6F

04/12 17:59, , 7F
or system.time
04/12 17:59, 7F

04/13 19:41, , 8F
請教一下:proc.time會算三個時間為user/system/elapse
04/13 19:41, 8F

04/13 19:42, , 9F
我對電腦背景沒有那麼足夠所以有點分不出前兩個差別,
04/13 19:42, 9F

04/13 19:42, , 10F
我算出結果覺得elapsed算的跟Sys.time好像是一樣的
04/13 19:42, 10F

04/13 19:43, , 11F
所以我想我應該是要用user/system這兩個其中之一,但我
04/13 19:43, 11F

04/13 19:43, , 12F
看不太懂他的差異 不知可否有人給點提示 THX
04/13 19:43, 12F

04/13 19:45, , 14F
我看這個也實在是霧煞煞阿...
04/13 19:45, 14F

04/13 22:21, , 15F
簡單來說,SYSTEM是cpu時間,ELAPSED等同用Sys.time
04/13 22:21, 15F

04/13 22:21, , 16F
user就是你執行程式的時間
04/13 22:21, 16F

04/13 22:22, , 17F
畫一個TIME LINE來看,前後段就是USER TIME
04/13 22:22, 17F

04/13 22:22, , 18F
中段是程式執行時間(cpu TIME)
04/13 22:22, 18F

04/13 22:23, , 19F
這兩個時間相加就是elapsed time
04/13 22:23, 19F
文章代碼(AID): #1LAZIptT (R_Language)
文章代碼(AID): #1LAZIptT (R_Language)