2

WindowsプラットフォームでネイティブC++コードの1秒未満の経過時間を測定するための良い方法は何ですか(私はWindows Vista、Visual Studio 2010で作業しています)

使ってみました

#include <ctime>

int main()
{    
    clock_t start = clock();
    ... some code
    clock_t end = clock();
    double cpu_time = static_cast<double>(end - start)/CLOCKS_PER_SEC;
}

しかしcpu_time、常に0です。

ありがとう !

4

2 に答える 2

2

QueryPerformanceFrequencyおよびQueryPerformanceCounterWinAPI 関数を使用できます。

于 2012-11-25T23:18:01.773 に答える
0

あなたのコードはすべて有効で機能しています。特定のコードの実行時間を測定しようとしている場合は、Xymostech が提案しているように、ループを介して実行する必要があります。主な理由は次のとおりです。

  • コード スニペットは非常に高速に実行されます。場合によっては、タイマーの開始、コード スニペット、および終了を同じクロック ティックで実行します。これによりstart、 と同じ値が保持されendcpu_timeゼロに等しくなります。

ただし、多くの反復にわたって平均実行時間を計算できるという追加の利点もあります。

于 2012-11-26T02:27:01.913 に答える