快速时间函数C/C++

Fast time function C/C++

本文关键字:C++ 函数 时间      更新时间:2023-10-16

我当前正在使用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;
}

时间(NULL)不够快。

您似乎只想测量经过的时间(而不关心绝对时间)。测量运行时间的最快方法之一(如果使用x86)是读取rdtsc计数器。在mvsc++中,这可以通过以下方式实现:

#include <intrin.h>
unsigned __int64 rdtsc(void)
{
    return __rdtsc();
}

我不确定,但我猜,考虑到它计数整秒,你可能会说time(NULL)不够粒度。换句话说,你可能想要降低到毫秒、微秒或纳秒。

如果是这样的话,看看这个问题