2011-03-11 31 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

相關問題