【问题标题】:Any ways to speed macro preprocessing in gcc?有什么方法可以加快 gcc 中的宏预处理?
【发布时间】:2018-05-12 19:47:50
【问题描述】:

我的项目编译速度很慢,因为单元测试使用了很多宏(可能使用了 boost 测试库)。从gcc -ftime-report来看,预处理时间成本很高。有没有办法为此优化速度?

【问题讨论】:

  • 你可以看看预编译的头文件。
  • 如果你大量使用宏,期望预处理器做更多的工作。如果没有有关您的代码、宏或您如何使用这些宏的信息(大量使用宏会使预处理器工作得更加困难,因为宏扩展/替换是预处理器的工作),就不可能提供有用的建议。一般的解决方案是:避免使用宏,但替代方案也有成本 - 例如编写重复的代码(劳动密集型,容易出错)或使用不同的技术(模板等),使编译器在预处理后做更多的工作。

标签: c++ gcc compilation macros c-preprocessor


【解决方案1】:

这真的取决于你的宏,但一般的想法是减少你扩展它们的次数

例如,如果您使用 Catch,最好将测试套件的公共部分放在单独的共享文件 (https://github.com/catchorg/Catch2/blob/master/docs/tutorial.md#scaling-up) 中。

我从未使用过 boost 测试库,但显然他们给出了类似的建议 (http://www.boost.org/doc/libs/1_42_0/libs/test/doc/html/utf/usage-recommendations/generic.html)。

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 2012-07-19
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 2015-08-25
    • 2013-07-01
    相关资源
    最近更新 更多