c++ - std::chrono::high_resolution_clock 的用途是什么?

标签 c++ c++11 time clock chrono

起初我认为它可以用于性能测量。但它是said std::chrono::high_resolution_clock 可能不稳定(is_steady 可能是 false)。也有人说 std::chrono::high_resolution_clock 甚至可能是 std::chrono::system_clock 的别名,一般来说是不稳定的。所以我不能用这种类型的时钟测量时间间隔,因为任何时候时钟都可能被调整,我的测量结果会出错。

同时我无法将 std::chrono::high_resolution_clock 的时间点转换为日历时间,因为它没有 to_time_t 方法。所以我也不能用这种类型的时钟获得实时

那么std::chrono::high_resolution_clock可以用来做什么呢?

最佳答案

没有。

对不起,my bad .

如果您想使用 high_resolution_clock , 选择steady_clock反而。在 libc++ 和 VS high_resolution_clocksteady_clock 的类型别名无论如何。

在 gcc 上 high_resolution_clocksystem_clock 的类型别名我见过不止一种使用 high_resolution_clock::to_time_t在这个平台上(这是错误的)。

不要使用<chrono> .但是有部分<chrono>你应该避免的。

  • 请勿使用 high_resolution_clock .
  • 避免使用 .count().time_since_epoch()除非没有其他方法可以完成工作。
  • 避免使用 duration_cast除非没有它代码无法编译,并且您希望截断为零的行为。
  • 如果隐式转换可以编译,请避免显式转换语法。

关于c++ - std::chrono::high_resolution_clock 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37426832/

相关文章:

c++ - 在 C++ 中的 "using namespace::X"中的前导::是什么意思

c++ - c++ 一段代码中的二进制搜索似乎有问题

C++11 线程 : Multiple threads waiting on a condition variable

javascript - 根据时间字符串值对对象数组进行排序?

c - 我如何测量 C 中每个线程的时间?

html - 使用 angular.js 输入类型时间

c++ - 如何开始游戏开发?

c# - 如何制作 C# DLL COM InterOp 方法的 C++ 包装器?

C++11 正则表达式抛出 std::regex_error

c++ - 使用用户定义的文字对字符串进行编译时加密