重複の可能性:
Windows C ++ナノ秒のタイミング?
関数の実行時間を測定したい。しかし、私は古いC ++を使用しており(つまり、クロノを使用できません)、Windowsを使用しています。必要なことを実行するコードスニペットが見つかりません。助けてください。
重複の可能性:
Windows C ++ナノ秒のタイミング?
関数の実行時間を測定したい。しかし、私は古いC ++を使用しており(つまり、クロノを使用できません)、Windowsを使用しています。必要なことを実行するコードスニペットが見つかりません。助けてください。
Windowsでは、高性能カウンターを使用して高解像度のタイミングを取得するオプションがあります。これは、非常に古いWindowsインストールや古いコンパイラでもサポートされるはずです。
QueryPerformanceCounterを見てください。 経過時間はティックで取得でき、1秒あたりのティック数がわかります。CPU速度が変化する可能性があるため、大きな間隔では信頼できない場合があります。
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);
}
}
}