※ 引述《
boja...@bbs.mgt.ncu.edu.tw (哈哈......)》之銘言:
> 更正...
> cpu time 是用來計算,cpu運算的時間...
> (ex. #include <time.h>
> void main(){
> clock(); // start
> XXXXX();
> cout<<clock()<<endl; // end
> }
> 還有,似乎只能印出八位數以下...
> cpu time 是用來計算,cpu運算的時間...
> 由於,印出的單位是萬分之一秒..so...很容易就超過了...
> 若是,程式所需時間須要很長,那麼就會超出八位數...
> 有什麼方法可以解決呢??
> 還有,很奇怪的,每次,印出的值,怎會剛好都是 xxx0000,
> 就是最後四位數是0,有經過四捨五入嗎??
> 而且,當執行時間很短時...都會印出 0 ...
> 好像真的是四捨五入後的結果...
> 有辦法解決嗎???還是有其它的函數,可以精確算出此程式所需時間...??
clock() 的單位是 1/CLOCKS_PER_SEC 秒,
CLOCKS_PER_SEC 可能隨著 OS / Compiler / C Runtime Library 不同而各異
以 VC 的 CRT 而言, clock() 根本是用 _ftime() 得到時間後再轉換成別的單位
(PS: VC 有 CRT 的 source code, 其他應該也有...)
若在 WIN NT 上, 可使用 GetProcessTimes()
單位至 100 nanosecond ( 10^-8 sec) , 容量為 64bit
應可應付需求...
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: cs20.cs.nthu.edu.tw