修复
修复
修复
修复
修复
修复
已弃用
duration_short
, duration_long
已弃用。您应该使用参数化形式 duration_fmt
或重命名的操作符 __duration_symbol 和 __duration_prefix 代替。duration_punct
<> facet 已弃用。您应该使用 get_duration_style
自由函数来获取信息,并使用 duration_units
facet 进行本地化。当 BOOST_CHRONO_VERSION==2 时,前面的已弃用函数不可用。
修复
新特性
已弃用
duration_short
, duration_long
已弃用。您应该使用参数化形式 duration_fmt
或重命名的操作符 __duration_symbol 和 __duration_prefix 代替。duration_punct
<> facet 已弃用。您应该使用 get_duration_style
自由函数来获取信息,并使用 duration_units
facet 进行本地化。当 BOOST_CHRONO_VERSION==2 时,前面的已弃用函数不可用。
修复
不修复
尚未修复的已知错误
修复
修复
修复
新特性
修复
清理
特性
windows.h
文件)。实现
修复
测试
文档
请参阅 N2661 - 睡眠的基础,该文档内容丰富,并为关键设计决策提供了动机。本节包含该文档的一些摘录。
此运算符方便计算给定 duration 在时间框架中的位置。一个有力的例子是将 duration 转换为“分解”的时间 duration,例如 hours::minutes::seconds
class ClockTime { typedef boost::chrono::hours hours; typedef boost::chrono::minutes minutes; typedef boost::chrono::seconds seconds; public: hours hours_; minutes minutes_; seconds seconds_; template <class Rep, class Period> explicit ClockTime(const boost::chrono::duration<Rep, Period>& d) : hours_ (boost::chrono::duration_cast<hours> (d)), minutes_(boost::chrono::duration_cast<minutes>(d % hours(1))), seconds_(boost::chrono::duration_cast<seconds>(d % minutes(1))) {} };
下表总结了在每个平台上每个时钟使用的 API
表 5.4. 时钟 API 对应关系
时钟 |
Windows 平台 |
Posix 平台 |
Mac 平台 |
---|---|---|---|
GetSystemTimeAsFileTime |
clock_gettime( CLOCK_REALTIME) |
gettimeofday |
|
QueryPerformanceCounter 和 QueryPerformanceFrequency |
clock_gettime( CLOCK_STEADY) |
mach_timebase_info,mach_absolute_time |
|
GetProcessTimes |
times |
times |
|
GetProcessTimes |
times |
times |
|
GetProcessTimes |
times |
times |
|
GetProcessTimes |
times |
times |
|
GetThreadTimes |
clock_gettime(pthread_getcpuclockid) |
clock_gettime(pthread_getcpuclockid) |
询问您的操作系统供应商。结果已使用调试器检查过,对于 Windows 和 Linux,这似乎是操作系统有时报告的内容。
Boost.Ratio 避免了所有可能由算术运算产生并且可以简化的溢出。 typedefs durations 不检测溢出。您将需要一个处理溢出的 duration 表示。
每个时钟都有其自身的特性。这取决于您需要基准测试什么。大多数时候,您可能对使用线程时钟感兴趣,但是如果您需要测量受同步约束的代码,则 process 时钟会更好。如果您有多个进程应用程序,则可能需要系统范围的时钟。
对于跟踪目的,最好使用系统范围的时钟。
该库的代码源自 Howard Hinnant 的 time2_demo 原型。非常感谢 Howard 根据 Boost 许可证提供他的代码。原始代码由 Beman Dawes 修改以符合 Boost 约定。
time2_demo 包含此注释
非常感谢 Andrei Alexandrescu, Walter Brown, Peter Dimov, Jeff Garland, Terry Golubiewski, Daniel Krugler, Anthony Williams。
文件 <boost/chrono_io.hpp> 已从 Howard Hinnant 的实验性标头 <chrono_io>
改编而来。感谢 Howard 的一切。
Howard Hinnant 是该库的真正作者,在库的开发过程中提供了宝贵的反馈和建议。特别是,chrono_io_io.hpp 源代码已从 Howard Hinnant 的实验性标头 <chrono_io>
改编而来。
Boost.Ratio 的验收审查于 2010 年 11 月 5 日至 15 日进行。非常感谢审查经理 Anthony Williams 以及所有审查员:David Deakins, John Bytheway, Roland Bock 和 Paul A. Bristow。
感谢 Ronald Bock, Andrew Chinoff, Paul A. Bristow 和 John Bytheway 在润色文档方面的帮助。
感谢 Tom Tan 报告了 MSVC V10 beta 和 MinGW-gcc-4.4.0 的一些编译器问题,并感谢他推动实现同构的 process_cpu_clock
时钟。
感谢 Ronald Bock 报告 Valgind 问题,并感谢他提出的许多关于文档的建议。