Boost.Timer 提供时钟来测量代码性能。起初,这个库似乎与 Boost.Chrono 竞争。然而,虽然 Boost.Chrono 提供时钟来测量任意周期,但 Boost.Timer 测量执行代码所需的时间。虽然 Boost.Timer 使用的是 Boost.Chrono,但是当你想测量代码性能时,你应该使用 Boost.Timer 而不是 Boost.Chrono。
自 Boost 库的 1.48.0 版本以来,已经有两个版本的 Boost.Timer。 Boost.Timer 的第二个版本只有一个头文件:boost/timer/timer.hpp。该库还附带了一个头文件 boost/timer.hpp。不要使用这个头文件。它属于 Boost.Timer 的第一个版本,不应该再使用了。
Boost.Timer 提供的时钟在 boost::timer::cpu_timer 和 boost::timer::auto_cpu_timer 类中实现。 boost::timer::auto_cpu_timer 派生自 boost::timer::cpu_timer 并在析构函数中自动停止时间。然后它将时间写入输出流。
例 38.1 首先引入类 boost::timer::cpu_timer。这个例子和下面的例子做了一些计算,以确保足够的时间流逝是可测量的。否则,计时器将始终测量为 0,并且很难从该库中引入时钟。
例 38.1。使用 boost::timer::cpu_timer 测量时间
- #include
- #include &l