从应用程序启动以来c ++便携式获取时间的方法?

时间:2011-03-26 18:32:57

标签: c++ datetime

在c ++中,什么是一个很好的可移植方式(可能使用一些库)来获取自应用程序启动以来的时间,其精度至少为亚毫秒级?

谢谢!

编辑:由于在所有平台上都无法达到亚毫秒级,那么可能以最准确的方式获得它的方式是什么?

2 个答案:

答案 0 :(得分:2)

Boost Date Time可以提供帮助,但正如Damon在评论中已经指出的那样,这是一个相当依赖于平台的问题,而且您的最低要求比最广泛使用操作系统可以支持的要求更为严格。

因此,Boost提供的抽象是有帮助的。当然还有无数其他库,但Boost Date Time库有纳米秒分辨率的选项(如果可用),但您需要在构建时启用它:

  

编译选项

     

默认情况下   posix_time系统使用单个64位   整数内部提供一个   微秒级分辨率。作为一个   替代方案,64位的组合   整数和32位整数(96位   决议)可以用来提供   纳秒级分辨率。该   默认实现可能提供   更好的性能和更紧凑   许多应用程序的内存使用   不需要纳秒   分辨率。

     

使用替代分辨率(96   位纳秒)变量   BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG   必须在库用户中定义   项目文件(即Makefile,Jamfile,   等等)。该宏未被使用   格列高利制度因此没有   建立图书馆时的效果。

答案 1 :(得分:1)

查看clock_t clock ( void );中包含的time.h。它返回自程序启动以来经过的时钟周期数。

有关详细信息,请查看this link