问题标签 [chrono]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - std::chrono::duration 对象的绝对值
鉴于它std::chrono::duration
可以表示两次之间的有符号差异,因此需要这种持续时间的绝对值似乎是一种非常常见的情况。例如,以下代码diff: -5
按预期输出:
能够做类似的事情会很好:
但是,我看不到标准std::abs
中chrono
模板的任何特化,也看不到std::chrono::duration
.
我应该如何将 astd::chrono::duration
转换为它的绝对值?
c++11 - chrono C++11版matlabs datenum
是否有一个C++11
版本的matlabsdatenum
函数#include<chrono>
?
c++ - odd behaviour using chrono::high_resolution_clock::now()
I've been looking at various game timing loop methods e.g. Glenn Fiedler and DeWitter. I found critical areas difficult to understand due to my own C++ knowledge limitations. With this I set about trying to implement my own method....I thought a good way to try to understand something about these methods.
[edit1: I'm using CodeBlocks IDE with minGW-w64 (x64-4.8.1-posix-seh-rev5) as the compiler]
[edit2: code and output windows amended to include a 3rd timer, QueryPerformanceCounter]
In trying to accomplish this I came across the following issue:
Minimal code:
For comparison purposes, the above code makes use of two timers.
On my PC the output from this is as follows:
Using duration_cast<microseconds>(finish - start).count()/1000.0
for the steady_clock we see the following:-
Notice how the high resolution clock fluctuates between 0 and 15.6ms and notice the steady_clock comparison.
The issue I have is that is that if I were to implement a fixed-time game loop where the update() code updates entity positions at exactly 1000/60 (60 update cycles a second) i.e. every 16.666etc ms - then this is very close to the returned hires timer fluctuating value! The real problem is that if I also implement an accumulator in order to accommodate both game loop frame times that are under 1000/60ms and any leftover once update() has completed, the update loop is entered sooner - and at irregular time points - than it should.
Is there an issue with the minimal code above, and if not, should I be concerned with this for any proper fixed-time implementation? Additionally, and if relevant, is there any way to isolate a program/thread so that it is not interrupted by system IRQ or other polling events? I'm guessing the hires timer may be subject to such interruptions.
c++ - C++:std::chrono 或 boost::chrono
我正在我的代码中进行一些基准测试,并试图弄清楚我是否应该使用标准版本的 chrono 或 Boost 提供的原始版本。
我开始使用标准的,因为我想尝试一下,并注意到例如它没有像 Boost 提供的 chrono 那样提供 io 功能。
那么,关于 chrono 和一般来说,我应该使用 Boost 库还是它们的标准库对应物?
c++ - C++11 std::chrono 现在和分钟减法
我觉得我对这个有点疯狂,但这对我来说没有意义。在我看来,如果我从now()
呼叫返回的任何时间点中减去最小时间点,我应该总是得到一个正的持续时间,但这不会发生。
为什么这会打印负整数而不是正整数?(clang 3.3 或 g++ 4.8.1)
c++ - 我在这个计时器上做错了什么?
使用 chrono 我一直在尝试实现一个计时器,但我觉得我错过了一些东西。在每次迭代时调用该函数很重要,但某些指令仅在延迟后才会执行。这是一个更大项目的简化示例。我错过了什么?
输出显示被传递的延迟是循环的增量时间。不过,所花费的时间可以正常工作。示例输出:不做:2971 3000 不做:2971 3000 不做:3145 3000 做
问题是它只在我打印“做它”或“不做”行时才有效,所以我猜当我注释掉“不做”行时计时器的分辨率不够好当我这样做时,没有“做它”输出。
编辑
好的,通常情况下,编写简化版本已经为我指明了正确的方向。正如我所提到的,这似乎是一个分辨率问题。通过将单位更改为纳秒,它似乎可以按我的预期工作。我仍然想听听任何怀疑一般方法或有更聪明的想法/参考的人的意见。这是我的工作版本:
c++ - 与 std::chrono::system_clock / std::chrono::high_resolution_clock 的时差
考虑以下代码
我们期望的是
差是100039989,应该是100000000左右
请参阅此演示,它工作得非常好。
但是,在我的机器上,根据Stack Overflow 上的这个答案,安装了几个编译器似乎会导致配置错误。
因此我尝试了建议的修复:设置正确的LD_LIBRARY_PATH
. 这些是我尝试过的输出组合(其中包括 4.4 和 4.6...)
差是100126,应该是100000000左右
差是100132,应该是100000000左右
差100085953,应该是100000000左右
差100156418,应该是100000000左右
似乎无论如何,使用g++-4.8
任何.libstdc++
g++-4.7
我在编译器/二进制调用中做错了什么还是它是一个错误g++-4.7
?(这是g++-4.7.3
和g++-4.8.1
)
对于(可能是最丑陋的)解决方法,我当然可以测量一小段时间,将其与预期差异进行比较并得出一个因素。但是我非常想优雅地解决这个问题。
c++ - std::chrono 乘以持续时间
考虑这个代码示例:
我希望这能以秒为单位打印经过的时间。但它实际上以数千秒为单位打印时间(预期结果乘以 0.001)。难道我做错了什么?
编辑
因为seconds
等价于duration<some-int-type>
,duration_cast<seconds>
所以给出相同的结果。
我用 gcc-4.7.3-r1
c++ - 从 time_point + 持续时间转换为持续时间在铿锵声中失败
此代码在 gcc-4.8 上编译并在 clang-3.3 上失败?以及如何使这段代码在 clang 上可编译?=\
错误信息:
c++ - 如何防止时间戳被重新排序?
我的理解是,C++ 允许任何不是 IO 或外部函数调用的东西都可以优化重新排序。这开始让我编写 RAII 样式函数时间戳的努力受挫。
编辑
这是一个自包含的示例,
VS 2012 的代码,经过优化