c++ - 如何加快 C++ 链接时间

标签 c++ linker visual-c++

有什么方法可以优化 MS Visual Studio C++ (2005) 中的链接时间?我们使用 Xoreax Incredibuild 来加速编译,但没有链接。

目前每个链接大约需要 30 秒。当我打开增量链接时,大约需要 35-40 秒。 (无论我是否使用 incredibuild 编译项目)

有什么办法,如何分析链接器并观察需要多长时间?或者任何并行链接的工具?或者任何代码优化技巧以加速链接器?

感谢回复 卢德克伏迪加


编辑:

感谢您的第一次回复和其他信息:

  • 整个程序优化和链接时代码生成已关闭。
  • 尽可能使用 PIMPL 成语
  • 其他静态库已通过#pragma comment(lib, "pathToLib") 包含在内。 (也因为更容易维护]
  • 硬件:四核 q6600、8GB 内存、3x WD raptor raid 0。Windows Vista 64 位

最佳答案

我不知道有任何并行链接工具;我知道 Incredibuild 不允许这样做。

工具箱中用于避免链接时间的最大工具是适当的抽象级别。如果你的链接时间很长,可能是因为对象对其他对象了解太多。将它们解耦是关键——通过抽象接口(interface)(可能使用 PIMPL 范例),或者通过其他方法,例如事件传递。

通过项目依赖关系链接项目的开销也相当高。如果您的目标平台仅为 Win32,或者主要是 Win32,您可以考虑使用 header 通过 #pragma comment(lib, "pathToLib") 链接您的依赖库。

关于c++ - 如何加快 C++ 链接时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/921693/

相关文章:

c++ - 在堆栈上分配的变量上调用 delete

c++ - 数据不变时避免重新计算

c - 未使用的变量未在映射文件中分配地址

linux - 未定义对 `clock_gettime` 的引用,尽管给出了 `-lrt`

c++ - 错误 4 错误 C3861 : 'snprintf' : identifier not found

c++ - 在 SAPI 5.3 中禁用主要语音识别

c++ - 为什么我的套接字停止传输?

c++ - 在 Mac 上构建 Googletest 时出现链接错误(命令行)

c++ - 警告 C26451 : Arithmetic overflow

用 C 编程语言创建 Sin 公式