发布和调试模式之间的编译时间差异

时间:2013-08-05 12:56:23

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

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

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

默认情况下,在Release配置中打开优化程序。是的,它需要时间来完成它的工作。链接器也不再进行增量链接,这可能会产生很大的不同。

你从来没有真正关心过这个问题,发布版本是你在完成或离开构建服务器时所做的事情。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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