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

您似乎只想测量经过的时间(而不关心绝对时间)。测量经过时间的最快方法之一(如果您使用的是 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 回答