嗯,程式設計師乙個永恆的追求就是效能吧?
為了衡量效能,自然需要計時。
奈何無論c標準庫還是c++標準庫,因為通用性的考慮,其time api精度都不高。基本都是毫秒級的。
所以如果要真正精確地衡量程式的效能,還是得靠系統api。下面的計時方式可以精確到<1us。
#includeclass mytimerinline void start()
inline void stop()
inline double elapse()
inline long long ticks()
};
使用方式也很簡單: 三個api:start, stop, elapse.
//example:mytimer timer;
timer.start();
matrixxd m3 = m1 * m2; //critical code here
timer.stop();
printf("time elapsed: %lf\n", timer.elapse());
主要用到的系統api有如下兩個。
queryperformancecounter
來自<
>
queryperformancefrequency function
來自<
>
看一下msdn的說明即可。
c 準確計時 C 精確計時
include large integer m freq,m timestart,m timenow queryperformancefrequency m freq queryperformancecounter m timestart double time double m timestart...
C C 中如何精確計時
給程式計時對於程式設計師來說實在是太重要了,在windows上的那個clock 實在是不夠精確,精度只有10ms,真讓人難過。研究了下windows下使用c c 計時的函式,給大家分享下。主要就是兩個函式的使用。我先把一段可以執行的 貼出來,然後講講這兩個函式。include include int...
win與Linux中的精確計時
win下精確計時,有二種方法,精度不同 如下 dword starttime gettickcount do something dword totaltime gettickcount starttime 根據msdn,此方法的精確度為10 16ms 取得時鐘頻率 large integer li...