0

リリース モードで約 20MB のサイズのアプリケーションがあります。このアプリケーションは、Linux 2.6.12 を実行する MIPS で実行することを意図しています。同じもののデバッグ ビルドは約 42 MB で、最適化がオフになり、-g フラグが追加されています。追加の 22 MB の増加は、アプリケーションに埋め込まれた gdb デバッグ シンボルによるものです (ログや print ステートメントは追加されていません)。

デバッグ ビルドは、リリース モードと比較してイメージよりも遅く実行されます。はいの場合、なぜですか?

また、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 に答える