我一直在做大量的谷歌搜索,想出各种方法,我可以分析每个翻译单元的include指令,以确定为什么我的整体构建速度如此之慢。整个项目由大约800个翻译单元组成,当与我们维护和使用的头文件数量(例如第三方)相结合时,很难准确地跟踪我们在顶层所包含的内容。可能包含大多数甚至不需要它的翻译单元。我觉得消除不必要的包含将有助于缩短我们的构建时间。
有人可以建议任何可能有助于分析不必要的包含的技术或工具吗?例如,在整个项目构建(所有翻译单元)中,可能会打印哪些标题按降序排列最多?如果这样的工具可以提供诸如"之类的统计数据,那就更好了。包含600个翻译单位,90%的翻译单位不需要#34;我不想使用预编译的头文件,因此我觉得这是我唯一的选择(消除不必要的包含和重新设计头文件以利用pimpl习惯用法来改善构建时间)。
注意我在linux和&amp ;;上使用clang作为我的编译器。 android(NDK)。我还在Windows平台上使用MSVC构建。