【问题标题】:what is gettimeofday() equivalent in c++11c++11 中的 gettimeofday() 等价物是什么
【发布时间】:2015-11-09 12:44:55
【问题描述】:

可能重复,但 c++11 中的 gettimeofday() 等价物是什么?

我正在尝试用微秒获得 64 位 timestamp,类似于 Java / Python。

【问题讨论】:

  • 如果你认为它“可能是重复的”,为什么不花时间去寻找那个重复呢?

标签: c++ c++11 gettimeofday


【解决方案1】:

使用std::chrono::system_clock::now()。

更新

您可以通过此静态断言检查必要的最小精度:

static_assert (std::ratio_less_equal<std::chrono::system_clock::duration::period,
    std::ratio<1,100> >::value, "");

【讨论】:

  • 我们确定它总是提供微秒级的分辨率吗?一个符合 C++11 的实现不能只提供一个精确到分秒的系统时钟吗?
  • @BasileStarynkevitch - 分秒对我有好处。我不认为 Java 做微秒。
  • @Nick 我不知道 Java 的分辨率是什么,但是当您发布问题时,您似乎认为 Java 以微秒为单位进行测量:尝试以微秒获取 64 位时间戳,类似于 Java / Python。
  • 还有一个high_resolution_clock,它可能与system_clock相同也可能不同
【解决方案2】:

要获得系统支持的最高分辨率,请使用std::high_resolution_clock::now。高分辨率时钟可能是std::chrono::system_clock 的别名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-08
    • 2020-12-06
    • 2023-03-30
    • 2010-09-17
    • 2011-07-26
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多