5

現在、ctime ライブラリの時間を使用しています。より速い代替手段はありますか?

time_t start_time, elapsed_time;

for(int i = 0; i < n; i++) {
    start_time = time(NULL);
    /// optimized code
    if(condition_met())
    {
       elapsed_time = time(NULL) - start_time;
    } else continue;
}

time(NULL) は十分に高速ではありません。

4

2 に答える 2

8

経過時間のみを測定したいようです (絶対時間には関心がありません)。経過時間を測定する最速の方法の 1 つは (x86 を使用している場合)、rdtsc カウンターを読み取ることです。mvsc++ では、これは次の方法で実現できます。

#include <intrin.h>
unsigned __int64 rdtsc(void)
{
    return __rdtsc();
}
于 2012-08-17T10:49:52.713 に答える
2

よくわかりませんが、秒単位でカウントされることを考えると、あなたが言っていることtime(NULL)は十分に細かくないということだと思います。言い換えれば、ミリ秒、マイクロ秒、またはナノ秒まで下げたいと思うかもしれません。

その場合は、この質問を見てください

于 2012-08-17T10:52:14.357 に答える