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

C++ C++;:std::chrono或boost::chrono,c++,boost,stl,chrono,C++,Boost,Stl,Chrono,我正在我的代码中做一些基准测试,我正在试图弄清楚我应该使用chrono的标准版本还是Boost提供的原始版本。 我开始使用标准版是因为我想试用一下,并注意到它没有像Boost提供的chrono那样提供io功能。 所以,关于chrono,一般来说,我应该使用Boost库还是它们的标准库?这取决于您想要实现什么。 C++计时功能: 更好的可理解性(更多用户了解标准库而不是boost) 更好的可移植性(如果您决定使用c++11) 也许它会工作得更快 不要向项目添加其他依赖项 加速计时专业: 适用于c+


我正在我的代码中做一些基准测试,我正在试图弄清楚我应该使用chrono的标准版本还是Boost提供的原始版本。
我开始使用标准版是因为我想试用一下,并注意到它没有像Boost提供的chrono那样提供io功能。

所以,关于chrono,一般来说,我应该使用Boost库还是它们的标准库?

这取决于您想要实现什么。 C++计时功能:

  • 更好的可理解性(更多用户了解标准库而不是boost)
  • 更好的可移植性(如果您决定使用c++11)
  • 也许它会工作得更快
  • 不要向项目添加其他依赖项
  • 加速计时专业:

  • 适用于c++03
  • 提供更多功能

  • 因此,如果您不需要额外的io函数,也不需要c++03支持,请使用标准库。

    +1为了获得良好的概述,我自己会使用俗气的“尽可能使用std::chrono,必要时使用boost::chrono”(1)在
    std::chrono
    中,哪个接口部分比在
    boost::chrono
    中更容易理解?(2)
    boost::chrono
    肯定比
    std::chrono
    更具可移植性,因为它可以与更广泛的编译器配合使用。(3) 你说的
    std::chrono
    “将工作得更快”是什么意思还不太清楚。底线似乎是:附加依赖性与可移植性和功能性。@IgorR。(1) 因为您不必阅读boost文档就能理解它。(2) 如果您已经使用了c++11,那么必须有
    std::chrono
    ,并且对于这个体系结构/编译器可能根本没有任何增强功能。(3) Std由编译器提供,通常使用此平台可用的最佳实现。Boost可能会对一些罕见/不受支持的编译器使用一些通用实现。具体取决于您的平台!不幸的是,MSVC将高分辨率时钟定义为系统时钟(懒惰的混蛋!)。换句话说,忘记在Windows中仅使用
    #include
    测量1ms以下的时间。使用
    您可以。