2011-03-11 29 views

回答

31

我引用

“它们之间最大的区别在于: 在调试构建完整的符号调试信息被发出,以帮助在调试应用程序,并在代码优化不考虑 虽然英寸发布构建符号调试信息不​​会被发射并且代码执行得到优化 另外,因为符号信息不是在发布版本中发布的,所以最终可执行文件的大小比调试可执行文件的大小要小。

由于编译器优化或者不同,期望在发布版本中看到有趣的错误在内存布局或初始化中进行。这些都是后容易被称作发布 - 只有错误:)

在执行速度方面,释放可执行文件将执行肯定更快,但并不总是将这种不同是显著“谷歌和用户的

礼貌。 mcdeeiis http://haacked.com/archive/2004/02/14/difference-between-debug-vs-release-build.aspx

这是所有的编程语言

+3

感谢Ross Alexander提供的链接,它解释了一些象征性的调试信息将在调试模式下生成,这是什么意思,究竟在哪里查看这些信息,如果是的话,这将有助于清除错误,如果是的话使用它来调试和清除错误,你能解释一个实例吗? – pradeepa 2011-03-11 08:48:53

+3

符号调试信息:将二进制信息链接到源代码的信息。如行号,变量名等。允许您参考源代码调试代码。在调试这个当然有帮助,但你已经使用这个信息没有意识到:)我相信你可以在发布模式以及在Xcode中的设置,但不要引用我的那个:P,因为我不是在目前的Xcode – Candyfloss 2011-03-11 08:55:42

+0

:)我可能不得不研究编译器设计来理解这些东西,谢谢:) – pradeepa 2011-03-11 09:11:11

2

的发行版本更多更好的性能和更小的尺寸优化的一个非常坚实的解释。

同样来自个人实践,我可以说,在发布配置中打开更多警告以了解哪些方法未被使用,哪些方法没有声明哪些签名/无符号被比较以及其他有用的东西是有用的。

+1

为什么不在调试模式下打开这些警告? – 2011-03-11 08:35:51

+0

由于他们比功能更迂腐 - 很高兴为我提供无警告代码。 – Eimantas 2011-03-11 08:40:29

+1

我更喜欢在* Release *模式下使用无警告代码。它比调试模式更重要。如果我首先在调试模式下修复错误,那么当我切换到发布模式时,它们将会消失。更重要的是,这样的“迂腐”问题表明代码中存在设计缺陷 - 您需要在设计/调试时修复这些缺陷,而不是一旦准备好测试/发布。 – 2011-03-11 08:42:57

相关问题