2

C++ プログラムで使用されているコードと静的データの量を推定したいのですが?

実行可能ファイルまたはオブジェクト ファイルを調べてこれを見つける方法はありますか? それとも、実行時にできることでしょうか?

objdump と readelf は役に立ちますか?

4

4 に答える 4

5

「サイズ」は伝統的なツールです。「readelf」には多くのオプションがあります。

$ size /bin/sh
   text    data     bss     dec     hex filename
 712739   37524   21832  772095   bc7ff /bin/sh
于 2008-08-30T06:24:05.780 に答える
2

フットプリントを削減するために焦点を当てる関数とデータ構造を特定する次のステップを実行したい場合は、nm の --size-sort 引数を使用して次のことを確認できます。

$ nm --size-sort /usr/bin/fld | tail -10
000000ae T FontLoadFontx
000000b0 T CodingByRegistry
000000b1 t ShmFont
000000ec t FontLoadw
000000ef T LoadFontFile
000000f6 T FontLoadDFontx
00000108 D fSRegs
00000170 T FontLoadMinix
000001e7 T main
00000508 T FontLoadBdf
于 2008-09-05T22:55:19.527 に答える
1
サイズ-A
于 2008-09-20T03:34:55.890 に答える
1

readelf確かに役立ちます。-Sオプションを使用できます。すべてのセクションのサイズが表示されます。.text実行可能コード (の大部分) です。.dataそして.rodataあなたの静的データです。他にもセクションがあり、実行時に使用されるものもあれば、リンク時にのみ使用されるものもあります。

于 2008-08-30T00:19:35.703 に答える