【发布时间】:2014-03-31 00:58:43
【问题描述】:
我需要一个可用于计算间隔的单调时钟。 要求:
- 必须是单调的,不得受设备时间影响。
- 在应用程序会话期间不得重置。(会话中所有返回值的同一时期)
- 必须代表现实生活中的秒数(不是 cpu 秒数),不得受当时运行的线程/进程数的影响。
- 秒分辨率就足够了。
在我的研究中我发现 候选人:
-
std::clock()(ctime)- 好像用cpu秒 -
boost::chrono::steady_clock()- 它使用 cpu 秒吗?session(launch-end)申请期间epoch可以改变吗? - 平台特定方法(
clock_gettime,mach_absolute_time)。
你有没有遇到过这样的问题,你选择了什么解决方案? steady_clock() 可靠的多平台吗?
【问题讨论】: