【问题标题】:difference in compilation time between release and debug mode发布模式和调试模式之间的编译时间差异
【发布时间】:2013-08-06 04:39:06
【问题描述】:

我有一个用于编译 c 源代码的 sln 文件。当我在 VS2008 中以发布模式编译它时,编译代码大约需要 4 分钟。但在调试模式下,编译代码只需要 1 分钟。 我不明白发布模式和调试模式的区别。

谁能帮我解决这个问题?

【问题讨论】:

  • 您的时间是根据重建解决方案还是仅在构建解决方案上衡量的?
  • 嗨史蒂夫,我只根据构建解决方案测量时间。当我重新构建时,也反映了相同的差异。

标签: c++ c visual-c++ visual-studio-2008 visual-studio-2008-sp1


【解决方案1】:

优化器在发布配置中默认开启。是的,它需要时间来完成它的工作。链接器也不再做增量链接,这会产生很大的不同。

您永远不会真正关心这一点,发布构建是您在完成后要做的事情,或者留给构建服务器。

【讨论】:

    【解决方案2】:

    在调试模式下编译时,编译器所做的所有额外工作就是添加调试信息(为了简化,基本上是所有符号的表),这非常简单而且速度很快。在发布模式下构建时,编译器会进行大量优化,如果代码不重要,这些优化可能会非常耗时。

    【讨论】:

      【解决方案3】:

      在发布模式下,编译器会花费更多精力进行优化 - 这可能会非常耗时,因为它与数独求解器或国际象棋引擎做类似的事情 - 它会尝试许多不同的选项来尝试找到在这种特殊情况下是最好的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-09
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-01
        • 1970-01-01
        相关资源
        最近更新 更多