2012-06-22 51 views
0

在發佈模式下,我們有一個大小約爲20MB的應用程序。此應用程序旨在運行在運行Linux 2.6.12的MIPS上。同樣的調試版本大約爲42 MB,並關閉了優化並添加了-g標誌。額外的22 MB增加僅僅是因爲嵌入到應用程序中的gdb調試符號(沒有添加日誌或打印語句)。添加GDB符號後應用程序運行緩慢 - 副作用?

現在將調試構建運行速度比釋放模式比圖像慢,如果是的話爲什麼?

也AFAIK strip debug_image應該給我release_image,但在我的情況,我觀察以下。

debug_image = 42MB 
strip debug_image = 24MB 
release_image = 20MB 

爲什麼剝離的debug_image和release_image有區別?

是否有任何其他副作用嵌入到應用程序的gdb符號?

+1

這兩個版本都有哪些選項? –

+0

除了-g和-O0之外,所有選項都是相同的,在釋放它的唯一-O2 – Kamath

+0

「....關閉優化」時,您知道這意味着什麼,對吧?這不是全部預期嗎? –

回答

1

現在將調試構建比圖像運行速度慢的版本 模式,如果是的話爲什麼?

是的,它會,如果優化是關閉的,這是真的在你的情況。

爲什麼剝離的debug_image和 release_image有區別?

由於優化是在發佈中,整個圖像大小進行了優化,減少了它。這會導致發行版中的圖像大小比調試時小。

是否有任何其他副作用嵌入gdb符號到 應用程序?

gdb加載符號需要更長的時間,需要更多的內存。

相關問題