C++ 基礎
首都大学東京 田川研究室

時間計測関数(超高精度)

Win32APIのQueryPeformanceCounterを使えば数マイクロ秒の誤差で時間計測ができます。対応しているCPUに難があり、2008年以降くらいに発売されたものでないと正しく動かないかもしれません。そしてWindowsでしか使えない。CPUの機能なのでほかの環境でも探せばあると思うのですが。
以下、使用例です。
#include <stdio.h>
#include <MMsystem.h>

int main()
{
    LARGE_INTEGER cpuFreq;
    LARGE_INTEGER count1 , count2;
    
    QueryPerformanceFrequency(&cpuFreq);

    QueryPerformanceCounter(&coutn1);
    //この間に処理時間を計測したい処理を書きます。
    QueryPerformanceCounter(&count2);

    printf("%f [ms]"
         , 1000.0*((double)count2.QuadPart - count1.QuadPart)/cpuFreq.QuadPart);
    return 0;
}
最近のCPUは、電源が入ってからひたすらクロック数を数えていたりします。現在クロックをCPUの周波数で割ればPCを起動してから何秒たったかわかるという寸法です。