在C ++ 11中,获取系统滴答/时间的最快方法是什么?

时间:2015-04-23 14:49:06

标签: c++ winapi c++11 time chrono

我的程序经常调用WINAPI函数timeGetTime(),该函数应替换为<chrono>(标准库)的使用。根据我的情况,获得系统时间的最快标准化方法是什么?floatint

我不需要跟踪日期或日期时间,我只需要精确的相对ms /秒值,它总是递增。有没有?

2 个答案:

答案 0 :(得分:5)

对于基准测试,您可能需要std::chrono::high_resolution_clock。它可能稳定 - 从某种意义上说它总是会增加&#34;。保证稳定的唯一时钟是std::chrono::steady_clock

最好的,稳定的时钟将是:

using ClockType = std::conditional<
    std::chrono::high_resolution_clock::is_steady,
    std::chrono::high_resolution_clock,
    std::chrono::steady_clock>::type;

请注意,high_resolution_clock本身可能只是steady_clock的别名。

答案 1 :(得分:1)

如果你需要精确的相对ms,你就是

  1. 寻找特定系统
  2. 不是wallclock
  3. 您使用WinApi标记了问题,我认为这是特定于Windows的。

    对于High Resolution Timer的Windows。该技术允许您精确计算相对时间(例如,在某些函数调用中花费了多少时间)。