boost :: xtime nsec只能在Ubuntu上提供1秒的分辨率

时间:2011-05-11 20:27:43

标签: c++ boost

当我使用Boost的boost :: xtime_get函数来获取当前时间时,nsec字段的分辨率只有一秒。我不期望纳秒分辨率,但为什么这么差?我所做的所有谷歌搜索似乎都暗示我应该在Linux上获得几毫秒的分辨率。我似乎无法找到替代方案--time.h函数也是1s分辨率......

Boost版本1.43 Ubuntu 10.04 GCC 4.4.3

如果有人能说清楚,我会非常感激!

1 个答案:

答案 0 :(得分:3)

自Boost 1.34.1以来,

boost::xtime_get并未成为Boost.Thread官方支持的部分。 Boost.Thread在1.35中从头开始重写,xtime_get仅用于向后兼容1.35之前的代码。

即使在1.34.1中,也记录为:

  

这是一个临时解决方案,将在Boost中提供更强大的时间库。

     

xtime类型用于表示某个时间刻度上的点或持续时间。这种类型可以由Markus Kuhn提出用于C标准。 Boost.Thread仅提供此提议的非常小的实现;预计Boost中将提供一个完整的实现(或其他时间库)作为一个单独的库,此时Boost.Thread将弃用其自己的实现。

“其他时间库”当然是Boost.Date_Time(顺便提一下是在Boost 1.32中引入的,所以看起来1.32和1.34.1之间的Boost.Thread文档没有更新)。在我看来,您正在寻找的Boost.Date_Time功能是boost::posix_time::microsec_clock::local_time()boost::posix_time::microsec_clock::universal_time(),这些功能在文档的Posix Time部分中有说明。