class showtime_
{
public:
showtime_()
{
QueryPerformanceFrequency( (LARGE_INTEGER*)&frequency_ );
QueryPerformanceCounter( (LARGE_INTEGER*)&time1_ );
GetThreadTimes( GetCurrentThread(),
(LPFILETIME)&ftCreationTime1_, (LPFILETIME)&ftExitTime1_,
(LPFILETIME)&ftKernelTime1_, (LPFILETIME)&ftUserTime1_ );
}
~showtime_()
{
QueryPerformanceCounter( (LARGE_INTEGER*)&time2_ );
GetThreadTimes( GetCurrentThread(),
(LPFILETIME)&ftCreationTime2_, (LPFILETIME)&ftExitTime2_,
(LPFILETIME)&ftKernelTime2_, (LPFILETIME)&ftUserTime2_ );
printf( "PerformanceCounter: %lf\n", (time2_-time1_)*1.0/
frequency_ );
printf( "Kernel: %llu.%07llu; User: %llu.%07llu; Total: %llu.
%07llu\n"
, (ftKernelTime2_-ftKernelTime1_)/10000000,
(ftKernelTime2_-ftKernelTime1_)%10000000
, (ftUserTime2_-ftUserTime1_)/10000000, (ftUserTime2_-
ftUserTime1_)%10000000
, (ftKernelTime2_-ftKernelTime1_+ftUserTime2_-
ftUserTime1_)/10000000, (ftKernelTime2_-ftKernelTime1_+ftUserTime2_-
ftUserTime1_)%10000000 );
}
private:
unsigned long long frequency_, time1_, time2_;
unsigned long long
ftCreationTime1_,ftExitTime1_,ftCreationTime2_,ftExitTime2_;
unsigned long long
ftKernelTime1_,ftUserTime1_,ftKernelTime2_,ftUserTime2_;
};
#define showfollowtime showtime_ _;
int main( void )
{
{
showfollowtime
for( int i=0; i<10000; ++i ) printf("%d",i);
}
}