[問題] pthread 與 gettimeofday 的計算問題

看板C_and_CPP作者 (.........)時間14年前 (2010/03/15 14:30), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 計算程式執行時間上的問題 不知道哪個才是正確的 希望得到的正確結果: 想計算的時間是: 主要process呼叫各個thread下去跑 到 所有thread跑完 的時間 程式跑出來的錯誤結果: gettimeofday() 算出來的時間 ... 好像太短了囧 clock() 算出來的時間是各個 thread 的 CPU time 總和 也不是我要的時間 ~.~ 跑出來的數據如下: clock time = 29.260000 sec gettimeofday time = 0.476576 sec 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) gcc / Linux 有問題的code: (請善用置底文標色功能) code在此: http://codepad.org/fkMgK0Lb (這code是練習pthread 所以做的事情很沒意義 XD) 補充說明: 我拿碼表來按過 從按下enter到跑完 大約8秒上下 所以才會覺得 gettimeofday 那個 0.476576 sec 似乎是太短了囧 不知道有沒有人有過這樣的使用經驗 ? 謝謝 orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.130 ※ 編輯: tour2046 來自: 140.114.78.130 (03/15 14:33)

03/15 15:54, , 1F
你的timeval只算了tv_usec的差距
03/15 15:54, 1F

03/15 15:58, , 2F
假設起始 7.3 秒,結束 8.5 秒,你只減後面會只有 0.2
03/15 15:58, 2F

03/15 16:07, , 3F
懂了!tv_sec也算結果就正確了 感謝!!!
03/15 16:07, 3F

03/15 16:16, , 4F
附帶一題,其實有一系列 timeradd, timersub, timercmp
03/15 16:16, 4F

03/15 16:16, , 5F
可以直接對 timeval 做加減,有些時候很好用
03/15 16:16, 5F

03/15 16:36, , 6F
好的 我去查一下manual 感謝樓上 <(_ _)>
03/15 16:36, 6F

03/17 01:09, , 7F
2.6.26 以後 getrusage 可以丟 RUSAGE_THREAD 去測每個
03/17 01:09, 7F

03/17 01:09, , 8F
thread 的資源用量,包含 utime 跟 stime。
03/17 01:09, 8F

03/17 01:10, , 9F
我倒是很少用其它的 function 來量時間。
03/17 01:10, 9F

04/13 16:46, , 10F
我的是2.6.28 但不能用RUSAGE_THREAD > < Why~
04/13 16:46, 10F
文章代碼(AID): #1BdTG92b (C_and_CPP)