Windowシステムの下でC/C++プログラムのミリ秒級とマイクロ秒級の実行時間の取得方法


一、clock()関数を用いてミリ秒レベル(ms)時間を取得する[1]
#include//clock()ヘッダファイル
time_t start = clock();
{statement section}//コードセグメントのテスト
time_t end = clock();
printf("the running time is:%fs", double(end -start)/CLOCKS_PER_SEC);//秒
 
二、CPUレベルの方法に基づいて、マイクロ秒レベル(us)時間を取得する[2,3]
#include
#include
LARGE_INTEGERR nFreq;
LARGE_INTEGER t1;
LARGE_INTEGER t2;
double dt;
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&t1);
{statementsection}//コードセグメントのテスト
QueryPerformanceCounter(&t2);
dt =(t2.QuadPart -t1.QuadPart)/(double)nFreq.QuadPart;
cout<
 
注記:次の2つのテスト例のように、Sleep()関数テストをコードセグメントに追加できます.
例1:500 ms,msレベル時間取得
#include//clock()ヘッダファイル
time_t start = clock();
  Sleep(500);//500ms
time_t end = clock();
printf("the running time is:%fms", double(end -start));
次のように実行されます.
the running time is :501.000000ms
例2:5 msテスト,us時間取得
#include//QueryPerformance Frequency,QueryPerformance Counterヘッダファイル
#include
LARGE_INTEGER  nFreq,t1,t2;
double dt;
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&t1);
Sleep(5);//5 ms、そのうち1 ms=1000 us
QueryPerformanceCounter(&t2);
 dt =(t2.QuadPart - t1.QuadPart)/(double)nFreq.QuadPart;
cout<
次のように実行されます.
Running time : 5162.22us
 
参照先:
[1] http://blog.sina.com.cn/s/blog_71a211bf0101mugn.html
[2] http://blog.sina.com.cn/s/blog_9700e68d0100wfh4.html
[3] http://www.cppblog.com/deane/articles/113151.html