C++:std :: chrono或boost :: chrono

Tal*_*ion 6 c++ boost stl c++-chrono


我在我的代码中做了一些基准测试,我想弄清楚我是否应该使用标准版的chrono或Boost提供的原始版本.
我开始使用标准的,因为我想尝试一下,并注意到例如它不提供像Boost提供的计时器之类的io功能.
那么,关于计时和一般情况下,我应该使用Boost库还是它们的标准库对应物?

Ale*_*hev 14

这取决于你想要达到的目标.C++ chrono专业人士:

  1. 更好理解(更多用户知道标准库而不是提升)
  2. 更好的可移植性(如果您决定使用c ++ 11)
  3. 也许它会更快地运作.
  4. 不要向项目添加其他依赖项.

提升计时专业人士:

  1. 适用于c ++ 03
  2. 提供更多功能.

因此,如果您不需要额外的io功能并且不需要c ++ 03支持,请使用标准库.

  • 取决于您的平台!不幸的是,MSVC类型将high_resolution_clock解析为system_clock(懒惰的混蛋!).换句话说,忘记在Windows中使用`#include <chrono>`测量低于1ms的时间.用`<boost/chrono.hpp>`你可以. (4认同)
  • 好的概述+1,我自己会使用俗气的"尽可能使用std :: chrono,必要时使用boost :: chrono" (3认同)