Revision: 31369
Updated Code
at September 10, 2010 13:32 by browny
Updated Code
// How to use CStopWatch s; s.startTimer(); // put the code which you want to measure here // s.stopTimer(); double mtime = s.getElapsedTime() * 1000; // hr_time.h #include <windows.h> typedef struct { LARGE_INTEGER start; LARGE_INTEGER stop; } stopWatch; class CStopWatch { private: stopWatch timer; LARGE_INTEGER frequency; double LIToSecs( LARGE_INTEGER & L) ; public: CStopWatch() ; void startTimer( ) ; void stopTimer( ) ; double getElapsedTime() ; }; // hr_time.cpp #include <windows.h> #ifndef hr_timer #include "hr_time.h" #define hr_timer #endif double CStopWatch::LIToSecs( LARGE_INTEGER & L) { return ((double)L.QuadPart /(double)frequency.QuadPart) ; } CStopWatch::CStopWatch(){ timer.start.QuadPart=0; timer.stop.QuadPart=0; QueryPerformanceFrequency( &frequency ) ; } void CStopWatch::startTimer( ) { QueryPerformanceCounter(&timer.start) ; } void CStopWatch::stopTimer( ) { QueryPerformanceCounter(&timer.stop) ; } double CStopWatch::getElapsedTime() { LARGE_INTEGER time; time.QuadPart = timer.stop.QuadPart - timer.start.QuadPart; return LIToSecs( time) ; }
Revision: 31368
Updated Code
at September 3, 2010 15:31 by browny
Updated Code
// hr_time.h #include <windows.h> typedef struct { LARGE_INTEGER start; LARGE_INTEGER stop; } stopWatch; class CStopWatch { private: stopWatch timer; LARGE_INTEGER frequency; double LIToSecs( LARGE_INTEGER & L) ; public: CStopWatch() ; void startTimer( ) ; void stopTimer( ) ; double getElapsedTime() ; }; // hr_time.cpp #include <windows.h> #ifndef hr_timer #include "hr_time.h" #define hr_timer #endif double CStopWatch::LIToSecs( LARGE_INTEGER & L) { return ((double)L.QuadPart /(double)frequency.QuadPart) ; } CStopWatch::CStopWatch(){ timer.start.QuadPart=0; timer.stop.QuadPart=0; QueryPerformanceFrequency( &frequency ) ; } void CStopWatch::startTimer( ) { QueryPerformanceCounter(&timer.start) ; } void CStopWatch::stopTimer( ) { QueryPerformanceCounter(&timer.stop) ; } double CStopWatch::getElapsedTime() { LARGE_INTEGER time; time.QuadPart = timer.stop.QuadPart - timer.start.QuadPart; return LIToSecs( time) ; }
Revision: 31367
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 3, 2010 15:30 by browny
Initial Code
// hr_time.h #include <windows.h> typedef struct { LARGE_INTEGER start; LARGE_INTEGER stop; } stopWatch; class CStopWatch { private: stopWatch timer; LARGE_INTEGER frequency; double LIToSecs( LARGE_INTEGER & L) ; public: CStopWatch() ; void startTimer( ) ; void stopTimer( ) ; double getElapsedTime() ; }; // hr_time.cpp #include <windows.h> #ifndef hr_timer #include "hr_time.h" #define hr_timer #endif double CStopWatch::LIToSecs( LARGE_INTEGER & L) { return ((double)L.QuadPart /(double)frequency.QuadPart) ; } CStopWatch::CStopWatch(){ timer.start.QuadPart=0; timer.stop.QuadPart=0; QueryPerformanceFrequency( &frequency ) ; } void CStopWatch::startTimer( ) { QueryPerformanceCounter(&timer.start) ; } void CStopWatch::stopTimer( ) { QueryPerformanceCounter(&timer.stop) ; } double CStopWatch::getElapsedTime() { LARGE_INTEGER time; time.QuadPart = timer.stop.QuadPart - timer.start.QuadPart; return LIToSecs( time) ; }
Initial URL
http://cplus.about.com/od/howtodothingsi2/a/timing.htm
Initial Description
Initial Title
High accuracy program timer
Initial Tags
Initial Language
C++