【发布时间】:2016-01-04 22:58:49
【问题描述】:
当使用 Microsoft 的优化编译设计 -stdafx.h - all 包含的想法应该只出现在此文件中。或者它只是编译密集型组件?
如果坚持all“规则”,我会实现更快更高效的编译设计吗?
stdafx.h:
... Standard C++ includes
#include "Base.h"
#include "Super.h"
Base 和 Super 头文件和 cpp 文件仅包含 stdafx.h 头文件
【问题讨论】:
-
恕我直言,
stdafx.h导致的问题多于解决的问题。预编译的头文件应该在 huge 构建中真正发挥作用。 -
嗯,为什么要投反对票?
-
我相信您会希望对最流行的包含进行预编译。但这是我的看法。当一个巨大的预编译头文件中只有几个定义时,我看不出它如何加快编译速度。
-
您还可以衡量构建性能。存储设备更快,PC 也更快。测量 10 次使用预编译的头文件和 10 次没有的重建。计算平均构建时间。节省的时间是否显着?再次执行相同操作,只重新编译一个文件。节省的时间仍然很重要吗?
-
的想法是所有包含都应该只出现在这个文件中不。我说只把外部库的头文件放在这个文件中或者至少通常不会更改的标题。
标签: c++ compiler-optimization stdafx.h