2011-03-17 140 views
5

可能重复:
Debug/Release difference
Performance differences between debug and release buildsVisual Studio 2010中的调试模式与发布模式有什么区别?

究竟是在编译和运行在调试模式VS释放模式的asp.net/c#项目的不同是什么?

+0

Exact dupe:http://stackoverflow.com/questions/933739/what-is-difference-between-release-and-debug-modes-in-visual-studio – gideon 2011-03-17 12:04:19

+0

Dupe 2 http://stackoverflow.com/问题/ 367884/debug-release-difference – gideon 2011-03-17 12:04:34

+0

Dupe 3:http://stackoverflow.com/questions/3143244/visual-studio-debug-vs-release – gideon 2011-03-17 12:05:20

回答

18

调试模式.exe有它内部的调试信息(源代码,变量名和其他类似的东西一样)。

释放模式.exe缺乏调试信息使其体积更小,可能执行,由于其占地面积更小更好。

+7

最大差异可能是在Release中,开启了许多优化以使程序执行得更好,这通常会妨碍调试程序的能力。所以它不仅仅是缺少调试信息,而是差异。 – 2011-03-17 12:09:49

3

这两者之间的最大区别在于: 在调试版本中,发出完整的符号调试信息以帮助调试应用程序,并且不考虑代码优化。 在发布版本中,不会发出符号调试信息,并且代码执行已经过优化。 另外,因为符号信息不是在发布版本中发布的,所以最终可执行文件的大小比调试可执行文件的大小要小。

由于编译器优化或内存布局或初始化的不同,可以期望在发布版本中看到有趣的错误。这些通常被称为只发布的bug :)

就执行速度而言,发布可执行文件的执行速度肯定会更快,但并不总是会有所不同。

相关问题