【发布时间】:2022-10-07 17:43:37
【问题描述】:
我已经看到了 fmt 库的 ROS 包装器,称为 rosfmt,并且想知道性能是否比使用 ROS_WARN_STREAM(...) 或类似函数更好
-
顺便说一句。我刚刚了解到(在fmt github site 上) fmt 的性能明显优于 printf 系列和 C++ 流输出。 rosfmt 可能会从中受益,但如果有疑问,您可以自己配置文件。
我已经看到了 fmt 库的 ROS 包装器,称为 rosfmt,并且想知道性能是否比使用 ROS_WARN_STREAM(...) 或类似函数更好
您的问题的确切答案是只有在同一系统上进行直接分析才能给出的答案。事实上,预计libfmt 会击败printf 系统调用,因为它实现了复杂的输出处理,实际上,像awk 这样的编程语言。从代码中可以看出,libfmt 硬编码了许多例程,所以它可比 STL 流更快,但它完全取决于当前的实现。对于 ROS,避免基于printf 的例程绝对是一个优势。
【讨论】: