1

重複の可能性:
Windows C ++ナノ秒のタイミング?

関数の実行時間を測定したい。しかし、私は古いC ++を使用しており(つまり、クロノを使用できません)、Windowsを使用しています。必要なことを実行するコードスニペットが見つかりません。助けてください。

4

3 に答える 3

1

Windowsでは、高性能カウンターを使用して高解像度のタイミングを取得するオプションがあります。これは、非常に古いWindowsインストールや古いコンパイラでもサポートされるはずです。

于 2012-10-18T14:11:48.673 に答える
0

QueryPerformanceCounterを見てください。 経過時間はティックで取得でき、1秒あたりのティック数がわかります。CPU速度が変化する可能性があるため、大きな間隔では信頼できない場合があります。

于 2012-10-18T14:17:55.113 に答える
0

QueryPerformanceCounterを使用できます

LARGE_INTEGER liFrequency = {0};

// Get the Frequency
if(QueryPerformanceFrequency(&liFrequency))
{

    // Start Timing
    LARGE_INTEGER liStart = {0};
    if(QueryPerformanceCounter(&liStart))           
    {
        // Do Stuff

        // Get Time spent...
        LARGE_INTEGER liStop = {0};
        if(QueryPerformanceCounter(&liStop))    
        {               
            LONGLONG llMilliseconds = (LONGLONG)((liStop.QuadPart - liStart.QuadPart) * 1000.0 / liFrequency.QuadPart);
            printf("time ellapsed ms:%lld\n", llMilliseconds);
        }
    }       
}
于 2012-10-18T14:19:18.670 に答える