对于干净的构建,预编译头可能比经典include慢

Can precompiled header be slower than classic include for clean builds?

本文关键字:经典 include 编译 于干净 构建      更新时间:2023-10-16

我正在研究一个带有预编译头(stdafx.h,指令Use,指令Create)的视觉工作室项目。除了几乎一直使用的外部头文件外,stdafx.h中还有来自项目本身的50多个头文件。

我想知道一个干净的构建是否会更慢或更快没有预编译头。不幸的是,要尝试我将不得不大量修改整个项目(我最终会,因为耦合是一个问题)。

如果PCH中的头文件在项目中多次使用,则预编译的头文件构建将更快。由于头文件只编译一次,所以它不会比反复编译包含的头文件慢。

pch的最大缺点是它们隐藏了依赖关系,并导致在头文件中忘记包含。因此,如果有人想使用你的库,它可能会得到许多缺失的包括。