0

在发布模式下,我们有一个大小约为 20MB 的应用程序。此应用程序旨在在运行 Linux 2.6.12 的 MIPS 上运行。相同的调试版本约为 42 MB,优化关闭并添加了 -g 标志。额外的 22 MB 增加仅仅是因为 gdb 调试符号嵌入到应用程序中(没有添加日志或打印语句)。

与发布模式相比,现在调试构建的运行速度会比映像慢,如果是,为什么?

AFAIKstrip debug_image也应该给我release_image,但就我而言,我观察到以下情况。

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

为什么剥离的 debug_image 和 release_image 之间有区别?

将 gdb 符号嵌入到应用程序中是否还有其他副作用?

4

1 回答 1

1

与发布模式相比,现在调试构建的运行速度会比映像慢,如果是,为什么?

是的,如果优化关闭,它会,这在你的情况下是正确的。

为什么剥离的 debug_image 和 release_image 之间有区别?

由于发布时进行了优化,因此优化了整个图像大小,减少了它。这导致发布中的图像大小比调试中的小。

将 gdb 符号嵌入到应用程序中是否还有其他副作用?

gdb 加载符号需要更长的时间,并且需要更多的内存。

于 2012-06-22T13:55:23.350 回答