计时库

时间:2015-06-04 22:31:17

标签: c++ c++11 visual-studio-2013 chrono

我试图理解c ++ 11 chrono库提供的不同时钟。从我到目前为止看到的关于不同时钟的内容来看,似乎在程序执行期间测量时间,我应该依赖于chrono :: steady_clock或chrono :: monotonic_clock,因为它们是单调的,因此在特定实例中采用的滴答计数的差异一段时间之后,即使我们调整系统/挂钟,这些时钟也会保持正面。

为了测试相同的内容,我编写了以下代码片段:

auto nowSystem = chrono::system_clock::now();
auto nowSteady = chrono::steady_clock::now();
auto nowMonotonic = chrono::monotonic_clock::now();

在调试时,我检查了所有值的计算值。然后我将机器时间改为当前时间后两个小时,然后执行set next语句,以便再次执行三个语句(以便模拟应用程序运行时系统时间的更改)。在

所有三个时钟的时间在运行的两次迭代中是相同的。这怎么可能,理想情况下,nowSystem时间应该是第二次迭代中较低的值,而其他值则较高。但这三个都是较低的价值!

为什么后两个时钟的单调性没有得到维持?

我在Windows上,使用VS2013。

0 个答案:

没有答案