代码之家  ›  专栏  ›  技术社区  ›  ufukgun

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

  •  1
  • ufukgun  · 技术社区  · 16 年前

    当我构建项目时,如果它是发布的,那么构建时间会得到很多时间。

    发布时,链接时间为:130秒

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

    编译没有区别,但链接有很大区别。

    你知道为什么吗?

    3 回复  |  直到 13 年前
        1
  •  3
  •   1800 INFORMATION    16 年前

    由于优化设置的原因,发布版本构建可能会更慢。通常对于调试构建,您没有设置优化—这意味着生成的对象文件可能或多或少直接复制到输出中。另一方面,对于发布版本,您可能有 LTCG 打开或应用其他链接器优化。链接通常受CPU限制,并且通常只在一个线程中运行,所以它有点慢。产量越大,情况就越糟。

        2
  •  0
  •   Sebastiaan M    16 年前

    我的经验是,在链接期间,大部分时间都花在生成调试信息上。如果尝试在没有调试信息的情况下链接,链接时间应该会大大缩短(我正在处理的项目从大约80秒变为大约10秒)。如果不是,那是另外一回事。在调试建立中,长链接时间也可能是由错误的增量链接引起的;我看到链接时间从1分钟上升到5分钟。如果您希望在保留调试信息的同时减少链接时间,请确保您拥有尽可能少的编译单元,因为必须合并所有编译单元的调试信息。我通过将多个cpp文件合并为一个编译单元来实现这一点,方法是让一个cpp文件包含那些cpp文件。

    当做,

    塞巴斯蒂安

        3
  •  0
  •   JaredPar    16 年前

    我唯一能想到的是你把fxcop设置为只在释放模式下运行。这将在大型项目上导致显著的生成时间差异,因为如果启用了fxcop,它将作为生成过程的一部分运行。

    你能给我们一些关于你的解决方案的信息吗?例如

    • 什么语言?
    • 什么类型的项目?
    • 项目中的文件数?
    • 它是从命令行重新编程的吗?