gpt4 book ai didi

c++ - 如何在 VS2005 中提高大型 C++ 应用程序的链接性能

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:11 24 4
gpt4 key购买 nike

我们有相当大的 C++ 应用程序,它由 Visual Studio 2005 中的大约 60 个项目组成。目前在 Release 模式下链接需要 7 分钟,我想尝试减少时间。是否有任何改进链接时间的技巧?

大多数项目都编译成静态库,这使得测试更容易,因为每个项目都有一组关联的单元测试。似乎静态库的使用阻止了 VS2005 使用增量链接,因此即使打开了增量链接,它每次都会进行完整链接。

对子项目使用 DLL 会有什么不同吗?我真的不想遍历所有标题并添加宏来导出符号(即使使用脚本),但如果它能减少 7 分钟的链接时间,我肯定会考虑它。

出于某种原因,从命令行使用 nmake 稍微快一些,而在 Linux(使用 GCC)上链接相同的应用程序要快得多。

  • Visual Studio IDE 7 分钟
  • 从命令行使用 nmake 的 Visual C++ - 5 分钟
  • Linux 上的 GCC 34 秒

最佳答案

如果您使用的是 /GL启用全程序优化 (WPO) 或 /LTCG 的标志标志以启用链接时间代码生成,关闭它们将显着缩短链接时间,但会牺牲一些优化。

此外,如果您使用的是 /Z7标记将调试符号放入 .obj 文件中,您的静态库可能很大。使用 /Zi创建单独的 .pdb 文件可能会有所帮助,如果它阻止链接器从磁盘读取所有调试符号。我不确定它是否真的有帮助,因为我没有对其进行基准测试。

关于c++ - 如何在 VS2005 中提高大型 C++ 应用程序的链接性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com