我如何找出编译器花费时间的地方?
我的构建太慢了,我已经为 VC++ 临时文件使用了 RAMdisk,它没有任何区别。(我有一个 SSD,所以我预计没有区别。)
该项目中的大多数单个 C++ 文件大约需要 . 2 秒编译,这看起来很糟糕(因为我也没有任何项目内并行化,因为我使用的是 VS2005)。
我该如何优化呢?不要在没有分析的情况下进行优化,但是如何分析编译器?
注意:这些并没有真正的帮助:
- 分析 C++ 编译过程
- 在 Visual Studio 中显示构建时间?(虽然它并非完全没有优点......如果您进行单文件编译,而不是整个项目,它将显示单个文件所花费的时间:这样我看到这里的一些文件需要更多5秒,有些甚至10秒,单机编译)
让我们添加一个很好的评论:你有很多模板吗?您的文件平均有多大?您是否检查过仅包含最少的必要标题
不,我没有。我当然可以(并且pro'lly会)。我也许能找到一些东西,但这都是猜测和反复试验!
“大家”告诉你,你应该只在测量/分析之后进行优化,但是在优化编译时间时,我们又回到了试错?
注意:评论中建议的“hack”__TIME__
不起作用,至少在 Visual-C++ 上不起作用,因为(如文档所述):当前源文件的最新编译时间。时间是 hh:mm:ss 形式的字符串文字。——我想至少可以用这个标记获得单个编译单元的计时,但它无助于深入研究一个编译单元。