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

Cro*_*oll -2 c++ time winapi c++11 c++-chrono

我的程序经常调用WINAPI函数timeGetTime(),应该替换为<chrono>(标准库)的使用.什么是最快的标准化的方式来获取系统时间-在floatint,我的情况?

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

Bar*_*rry 5

对于基准测试,您可能想要std::chrono::high_resolution_clock.它可能不会是稳定的-在这个意义上说,它"永远增量".保证稳定的唯一时钟是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;
Run Code Online (Sandbox Code Playgroud)

请注意,high_resolution_clock它本身可能只是一个别名steady_clock.