c++ - 在 C++ 中获得可靠的单调时间(多平台)

标签 c++ boost time

我需要一个可用于计算间隔的单调时钟。 要求:

  • 必须是单调的,不能受设备时间的影响。
  • 在应用程序 session 期间不得重置。( session 中所有返回值的相同纪元)
  • 必须代表现实生活中的秒数(不是 cpu 秒数),不得受当时运行的线程/进程数的影响。
  • 秒解决就足够了。

在我的研究中我发现 候选人:

  • std::clock()(ctime) - 似乎使用 cpu 秒数
  • boost::chrono::steady_clock() - 它使用 cpu 秒吗?在应用程序 session(launch-end) 期间 epoch 可以改变吗?
  • 平台特定方法(clock_gettimemach_absolute_time)。

您是否遇到过这样的问题,您选择了怎样的解决方案? steady_clock() 是可靠的多平台吗?

最佳答案

我会使用 std::chrono::steady_clock .据描述,它不受挂钟/系统时间变化的影响,最适合测量间隔。

关于c++ - 在 C++ 中获得可靠的单调时间(多平台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071199/

相关文章:

c++ - 当用户点击一个键时显示一条消息

c++ - 应该使用插入排序还是构造堆来 boost 性能?

javascript - 在 php/javascript 中获取时间

c - 我的跳过列表真的是在 N 而不是 log(N) 中搜索吗?

c++ - 检查std::string是否包含小写字符?

javascript - 如何在 JQuery 1.5.x 中延迟模式对话框窗口的自动打开?

c++ - 在 C++ 中不使用括号类的原因可能是什么?

c++ - OpenGL 3.3 - 2 个三角形的不同旋转

c++ - TCP Recv 使用 select() 返回 1 字节读取

c++ - boost::spirit::xml::宽字符串编码