2011-10-31 29 views

回答

1

大小,速度和內存使用。

你的用戶並不需要你使用的所有調試工具,所以剝離調試符號可以減少二進制大小和內存消耗(因此可以提高速度,因爲將程序組件加載到RAM中花費的時間更少) 。

當您的應用程序崩潰時,通常需要回溯和細節。你的用戶真的不會在意這一點。

+0

只是一個錯字。我不是邪惡的。 – Blender

0

部署調試版本沒有任何問題。人們通常不會這樣做,因爲非調試版本往往更有效率(即,斷言代碼被刪除,編譯器不會在目標代碼中插入跟蹤/調試器信息)。

0

利用Java 1.1的調試版本可能會慢得多,他們需要更多的磁盤空間(在那個時候,磁盤與120兆巨大 - 儘量適應這樣的小型設備上的主目錄.. )。

今天,這兩個都不是問題了。 Java運行時忽略了調試符號,並且使用JIT,代碼在運行時進行了優化,因此編譯時優化不再那麼重要。

調試版本的一大優勢是生產中的代碼正是您測試的代碼。

0

這完全取決於構建配置,在進行「發佈」構建時可能會有編譯優化。還有其他的考慮因素,依賴於語言;例如,使用Visual C++編譯應用程序時,可以針對不允許重新分發的C RunTime(CRT)的調試版進行編譯。

0

我認爲這裏的關鍵是確定究竟是什麼使構建「調試構建」。主要是生產版本更加優化(內存使用率,性能等),並且已經採取更多的關注來構建它,以便於部署和維護。我遇到的一個主要問題是調試版本有很多不需要的日誌記錄,導致性能非常顯着。

除此之外,調試版本不應該被部署到生產環境中沒有真正的原因。