我们在发布模式下有大约20MB的应用程序。此应用程序旨在在运行Linux 2.6.12的MIPS上运行。它的调试版本大约为42 MB,关闭优化并添加-g标志。额外的22 MB增加只是因为嵌入到应用程序中的gdb调试符号(没有添加日志或打印语句)。
现在调试构建运行比发布模式下的图像慢,如果是,为什么?
AFAIK strip debug_image
也应该给我release_image
,但就我而言,我会遵守以下内容。
debug_image = 42MB
strip debug_image = 24MB
release_image = 20MB
为什么剥离的debug_image和release_image之间存在差异?
是否有任何其他副作用将gdb符号嵌入到应用程序中?
答案 0 :(得分:1)
与发布相比,现在调试构建运行速度比图像慢 模式,如果是,为什么?
是的,如果优化已关闭,那么在您的情况下也是如此。
为什么剥离的debug_image和。之间存在差异 release_image?
由于在发布中进行了优化,因此优化了整个图像大小,从而减少了它。这导致发布时的图像大小小于调试中的图像大小。
是否有任何其他副作用嵌入gdb符号 申请?
gdb加载符号需要更长的时间,并且需要更多的内存。