预编译标头与构建到 .so 文件对象的相同标头相比,构建时间和执行时间速度

问题描述 投票:0回答:1

什么更快? 预编译标头或为对象构建的相同标头?

问题:如果我转到上面的模型,我还需要预编译头吗? 您还有什么建议可以加快更新速度吗?

我使用了预编译头,它似乎稍微加快了编译速度。

就我而言,某些部分从主应用程序中移出,以减少更新项目的时间(编译、构建、执行时间)

我考虑将所有整洁、完全调试的函数构建到 .so 对象文件,并将其相应地链接到依赖的应用程序

c++ shared-libraries execution-time precompiled-headers
1个回答
0
投票

预编译头仅缓存头解析。解析的标头仍然需要集成到 C/C++ 文件的其余部分中,并且结果仍然需要优化。

SO 文件是 UNIX 风格的动态库。静态和动态库都包含完全编译和优化的函数,只需链接即可。

链接完成的外部重要函数总是比从(编译或纯文本)头文件扩展内联函数更快。

不过,将头文件的内容移动到目标文件/库并没有什么意义。通常使用的头文件应该只包含宏、类型/类型别名定义、内联函数以及 C++ 中的模板定义。这些都不会生成可链接对象(外部符号定义)。将普通头文件编译成目标文件应该总是产生一个空的目标文件。

© www.soinside.com 2019 - 2024. All rights reserved.