问题标签 [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.

0 投票
1 回答
701 浏览

c++ - 打印/阅读时的奇怪行为

我正在尝试保存std::time_pointstd::stream读回它。一个问题是在某处使用标准函数会“损失”一个小时。即,我阅读的时间比我写作的时间晚 1 小时。我怀疑我需要在某个地方设置夏令时。我编写了一个小程序,将时间打印到 astd::stringstream并将其读回。

最奇怪的是程序会打印以下内容:

当我取消注释程序末尾的 3 行(打印时间点之间的差异)时,结果是:

请注意,dst(夏令时)突然不相等,时间也不相等。

我在带有 XCode46-DP2 的 Mac OS X 10.8.2 上使用 libc++。我使用的 clang++ 版本是Apple clang version 4.1clang version 3.2 (trunk 167239)

我想我的问题是:A)关于 1 小时的差异,这是我的库中的错误还是我没有正确使用标准函数?(后者不会让我感到惊讶......)

B)当我在程序末尾取消注释三行时,代码发生了什么?这对我来说似乎是一个错误。有人愿意在他们的平台上尝试吗?

0 投票
2 回答
26278 浏览

c++ - GCC 中的 std::put_time 实现状态?

我试图使用 GCC 编译这个示例程序(测试版本 4.5.1、4.6.3、4.8.4):

但它告诉我:


我想,可能它还没有实现。所以我试图检查这个函数的实现状态。我只找到了这个页面:

但在那里我找不到任何关于put_timechrono类似的注释。谁能指出我提供有关该库的实施状态信息的资源?

0 投票
4 回答
83370 浏览

c++ - 精确的时间测量

我在 C++ 中使用 time.h 来测量函数的时间。

但是,我总是将时间设为 0.0000。分开打印时,clock() 和 t 具有相同的值。我想知道是否有办法在 C++ 中精确测量时间(可能是纳秒级)。我正在使用VS2010。

0 投票
4 回答
175780 浏览

c++ - 如何获取持续时间,如整数毫秒和浮点秒数?

我正在尝试将 chrono 库用于计时器和持续时间。

我希望能够有一个Duration frameStart;(从应用程序开始)和一个Duration frameDelta;(帧之间的时间)

我需要能够以frameDelta毫秒和浮点秒为单位获得持续时间。

你如何使用新的 c++11<chrono>库来做到这一点?我一直在研究它并在谷歌上搜索(信息很少)。代码被大量模板化,需要特殊的演员表和东西,我不知道如何正确使用这个库。

0 投票
3 回答
2998 浏览

c++ - Windows 精确计时:CreateTimerQueueTimer 或 system_clock::now() 中的错误?

我正在努力实现 +/- ms 的计时精度。我希望线程之间的时间为 10 毫秒,但是当我测量时间时,我得到的结果接近 15 毫秒。

我试图了解问题是由于我测量时间的方式引起的,还是由于我测量时间准确而​​导致的延迟 CreateTimerQueueTimer

我的代码看起来像

输出看起来像

0 投票
5 回答
50833 浏览

c++ - 将 std::chrono::time_point 转换为 unix 时间戳

我怎样才能获得std::chrono::duration自固定日期以来的信息?我需要它来将 a 转换std::chrono::time_point为 unix 时间戳。

将代码插入 XXX

我知道time_point有一种方法time_since_epoch(),但不能保证这与 unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)相同。

0 投票
1 回答
8771 浏览

c++ - 使用 C++ Chrono 处理更新循环?

我肯定对新的 C++ chrono 库有点迷失了。

这里我有一个更新循环。它运行两个操作:

这些都是长时间的操作,很难说它们有多长。

因此,我们测量它们花费了多长时间,然后进行一些计算并找出在调用渲染之前逐渐调用更新的最佳方法。

为此,我使用了 C++11 的 Chrono 功能。我选择它是因为它听起来很划算:更准确,更依赖于平台。我发现我遇到的问题比现在更多。

以下是我的代码,也是我的主要问题。非常需要有关问题或进行操作的正确方法的任何帮助!

我在有问题的行旁边的评论中直接标记了我的问题,我将在下面重复。

头文件:

简化的更新循环

主要问题是:我的 mDeltaTime 总是很小。它基本上陷入了一个几乎无限的循环。这是因为 kMaxDeltatime 非常小,但如果我的目标是每秒 60 帧,我计算的不是正确的毫秒数吗?

以下是上面列出的所有问题:

我很抱歉混淆了伙计们。我觉得这个 chrono 库是个白痴。大多数帮助站点、参考资料,甚至直接代码本身都很难阅读和理解我所应用的内容。非常欢迎指出我应该如何搜索解决方案或代码!

编辑:Joachim 指出 std::min/max 可以在几毫秒内正常工作!更新了代码以反映更改。

0 投票
1 回答
8898 浏览

c++ - std::chrono:将自定义持续时间添加到 time_point

以下代码确实编译(g++ 4.7.2):

我的问题是我不知道有什么类型t3。它不是timepoint_t,并且取消注释具有明确给出的类型的行将无法编译。函数调用也一样:我不能do_somethingt3.

所以我的问题是:

  • 为什么转换失败?
  • 获得双精度秒持续时间的最佳方法是什么?

我知道我可以像这样使用额外的演员表

但我想避免这种情况。

先感谢您!

0 投票
1 回答
2275 浏览

c++ - std::put_time() 的问题

嗨,我在这里有一个非常简单的测试用例,可以在 Visual Studio 2012 下编译。但是它会产生运行时失败。产生此故障的行与 cppreference.com 上的许多与时间功能相关的示例完全相同。带有示例的页面就像这样http://en.cppreference.com/w/cpp/chrono/c/localtime

为了保持这篇文章干净,我把堆栈跟踪放在这里 http://ideone.com/WaeQcf

0 投票
2 回答
827 浏览

c++ - g++ vs intel/clang 参数传递顺序?

考虑以下代码(LWS):

您必须多次运行它,因为有时没有明显的区别。first但是当和的求值时间有明显差异时,second在 g++ 下的结果如下:

以及 intel 和 clang 下的以下内容:

这意味着在 g++ 下,second首先评估参数,而在 intel 和 clang 下,first首先评估参数。

根据 C++11 标准,哪一个是正确的?