VC中的时间测量

写测试程序的时候经常需要比较准确的时间,以下函数可以得到uS级的时间,可以满足大部分需要了。

   LARGE_INTEGER tc,tc_bak;
   __int64 t = 0;
   __int64 freq = 0;//freqence unit:Hz

   //Get freq
   QueryPerformanceFrequency(&tc);
   freq=tc.QuadPart;

   //tick start
   QueryPerformanceCounter(&tc_bak);

   //Test code
   ::Sleep(10);

   //tick end
   QueryPerformanceCounter(&tc);
   //time = ticks/freq
   t = ((tc.QuadPart - tc_bak.QuadPart)*1000000)/freq;

   //Report result.
   CString str;
   str.Format("Time used:%I64u uS or %I64u mS+ or about %I64u S+",t,t/1000,t/1000000);
   ::AfxMessageBox(str);

islq 2006-3-19

你可能感兴趣的:(VC中的时间测量)