2013-08-05 94 views
2

我有一个用于编译c源代码的sln文件。当我在VS2008中以释放模式编译时,大约需要4分钟来编译代码。但是在调试模式下,编译代码只需要1分钟。 我不明白发行模式和调试模式的区别。版本和调试模式之间编译时间的差异

任何人都可以帮助我吗?

+0

[可能的重复](http://stackoverflow.com/questions/933739/what-is-the-difference-between-release-and-debug-modes-in-visual-studio) –

+1

[优化编译器]( https://en.wikipedia.org/wiki/Optimizing_compiler)会[优化](http://www.compileroptimizations.com/) – jrok

+0

您的计时是针对重建解决方案还是仅针对构建解决方案进行测量的? – Steve

回答

4

默认情况下,优化程序在发布配置中处于打开状态。是的,它需要时间来完成它的工作。链接器也不再增加链接,这可能会产生很大的差异。

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

3

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

2

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