2011-03-09 78 views
14

我的项目的编译时间很长,我想尽可能地减少它。然而,现在我只是浏览我的项目,并尝试去掉纯粹直觉上的编译重量。分析和优化编译

我希望能够在某个级别上对我的汇编进行概要分析,这会给我提供有用的信息,我可以使用这些信息来确定编译时间的大部分时间。

我曾尝试在Visual Studio中启用“构建时序”,但并未给出比编译器执行的不同任务时间更多的信息,因为知道大部分时间都用在“CL”中并不是很有帮助。

有没有什么办法可以在较低的层次上进行配置文件的配置,比如线条或文件时间?

+1

不。它具有基本的O(n)复杂性,通过将代码拆分为单独的DLL来减少n。模板从来没有便宜btw。 – 2011-03-09 21:55:14

+3

我知道模板并不便宜。然而,很高兴知道哪些模板实例需要花费时间,例如,一些提升库正在花费80%的时间,在这种情况下,我可能会考虑更改实现。 – ronag 2011-03-09 22:18:03

+1

伟大的问题,我很想有编译计时工具。 – Inverse 2011-03-09 22:34:19

回答

1

我没有编译剖析意见,提供了一个很好的指导。然而,这里的一些提示,以减少编译时间:在头文件

  • 利用远期声明尽可能

    在C++中,类可以前置声明,如果你只需要使用指向类类型的指针(因为所有的对象指针的大小都是相同的,这就是编译器所关心的)。 (来源:http://en.wikipedia.org/wiki/Forward_declaration

  • 此外,使用PIMPL方法将帮助您让编译器重新编译只有你已经修改了部分很多。 http://en.wikipedia.org/wiki/Opaque_pointer

  • 避免全部包含文件,该文件包含库的所有包含文件,并且只包含实际需要的头文件。