我需要一个可用于计算间隔的单调时钟。 要求:
- 必须是单调的,不能受设备时间的影响。
- 在应用程序 session 期间不得重置。( session 中所有返回值的相同纪元)
- 必须代表现实生活中的秒数(不是 cpu 秒数),不得受当时运行的线程/进程数的影响。
- 秒解决就足够了。
在我的研究中我发现 候选人:
std::clock()(ctime)
- 似乎使用 cpu 秒数boost::chrono::steady_clock()
- 它使用 cpu 秒吗?在应用程序session(launch-end)
期间 epoch 可以改变吗?- 平台特定方法(
clock_gettime
、mach_absolute_time
)。
您是否遇到过这样的问题,您选择了怎样的解决方案? steady_clock()
是可靠的多平台吗?
最佳答案
我会使用 std::chrono::steady_clock .据描述,它不受挂钟/系统时间变化的影响,最适合测量间隔。
关于c++ - 在 C++ 中获得可靠的单调时间(多平台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071199/