前にQueryPerformanceCounterを上げたが、毎度毎度それを書いていくのも面倒なので、クラスなんかを作ってみた。ハンガリアン命名規約(ハンガリー記法)っぽいので書いてみる。
クラス
こんな感じかな(Visual Studio 2005, Visual C++ 8向けかな?)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
class CQueryPerformance { private: LARGE_INTEGER m_Freq; LARGE_INTEGER m_Begin; LARGE_INTEGER m_End; public: CQueryPerformance() { QueryPerformanceFrequency( &m_Freq ); m_Begin.QuadPart = 0; m_End.QuadPart = 0; } void Update() { if( m_Begin.QuadPart == 0 ) { QueryPerformanceCounter( &m_Begin ); } else if( m_End.QuadPart == 0 ) { QueryPerformanceCounter( &m_End ); } else { m_Begin.QuadPart = m_End.QuadPart; QueryPerformanceCounter( &m_End ); } } void Print() { _tprintf_s( _T( "%f" ), GetTime() ); } double GetTime() const { return ( double )( m_End.QuadPart - m_Begin.QuadPart ) / m_Freq.QuadPart; } }; |
要は、QueryPerformanceFrequencyとか.QuadPartとか書くの面倒なんでそれを簡単にしてみただけのラッパー的なもの。わりとチェックが甘くて(m_Freq.QuadPartが0だとdevided by zero errorですけど)どっか間違えているかもしれないけど、デバッグ用にでも。