在VS2008中,发布构建时间需要很长时间

时间:2009-07-10 08:46:55

标签: c++ visual-studio build linker release

当我构建项目时,如果它被释放,构建时间会花费很多时间。

在发布中,链接时间为:130secs

在调试中,链接时间为:同一项目的15秒。

编译没有区别,但链接存在巨大差异。

你知道为什么会这样吗?

3 个答案:

答案 0 :(得分:3)

由于优化设置,发布版本可能较慢。通常,对于调试版本,您没有优化集 - 这意味着生成的对象文件可能或多或少地直接复制到输出中。另一方面,对于发布版本,您可能已启用LTCG或可能应用其他链接器优化。链接通常是CPU绑定的,通常只在单个线程中运行,因此它往往有点慢。输出越大,这似乎也越差。

答案 1 :(得分:0)

我的经验是,在链接期间,大部分时间都花在生成调试信息上。如果你尝试在没有调试信息的情况下进行链接,那么链接时间应该会减少(我正在处理的项目从大约80秒到大约10秒)。如果没有,那就是别的了。在调试版本中,长链接时间也可能由不正确的增量链接引起;我看到链接时间从1分钟增加到5分钟。如果要在保持调试信息的同时减少链接时间,请确保尽可能少的编译单元,因为必须合并所有编译单元的调试信息。我通过将一个cpp文件包含在那些cpp文件中,将多个cpp文件组合到一个编译单元中来实现这一点。

此致

Sebastiaan

答案 2 :(得分:0)

我唯一能想到的就是你将FxCop设置为仅在发布模式下运行。这将导致大型项目的构建时间差异很大,因为如果启用FxCop作为构建过程的一部分运行。

您能否提供一些有关您的解决方案的更多信息?例如

  • 用什么语言?
  • 什么类型的项目?
  • 项目中的文件数量?
  • 是否从命令行重新生成?