我一直在分析我们的代码,并注意到在提升时间和日期函数上花了很多时间。似乎大部分时间用于验证该数字是否在范围内且有效。是否有编译器选项可以关闭此验证以提高提升日期时间函数的性能?
答案 0 :(得分:0)
看起来没有办法绕过这个。
验证是无条件的并且是设计的。但它只在需要时(从外部源接收输入时)才会发生。其余的时间,代码库中的不变量消除了重新验证的需要。
(例如,参见http://www.boost.org/doc/libs/1_55_0/doc/html/date_time/gregorian.html#date_intro相关文档报价)
当然,您可以尝试
特别是,如果这成为瓶颈,可能就是
localtime()
这样的C api并将结果转换为Boost类型。在这种情况下,更喜欢使用boost时钟作为时间源(例如second_clock::local_time()
或gregorian::day_clock()
)