2011-10-24 8 views
6

Linux O.S.を使用しているデバイス用にS/Wを開発しています。 私が使用するライブラリ(RAM/ROM)のサイズは非常に重要です。Linuxのライブラリのサイズを測定する

ソフトウェアで必要なRAM/ROMを簡単に計算するにはどうすればよいですか? (私が使った図書館を含む)。 経験豊富なLinux開発者にとっては簡単な質問だと思います。

+1

これは実際には難しい質問です。あなたのプログラムがダイナミックメモリ割り当て 'malloc'を使用している場合や、(特に再帰がある場合)重要な呼び出しパターンを持たない場合、ヒープ/スタックに必要なRAMの量を理論的に予測することは不可能です。典型的な組み込みプログラムのスタック要件を決定する上で合理的にうまく動作するアナライザがありますが、しばしば安価ではありません。 – Gilles

答えて

3

実行

size <object> 

または

size <archive> 

または

size <shared-object> 

。 (または「標的 - 」サイズあなたはクロスコンパイルしている場合:アームサイズあなたは腕-gccのを使用している場合)

それはあなたのテキストがプログある

text data  bss  dec  hex filename 

テーブルを与えるだろう初期化されたグローバルをbssし、読み取り専用データをデータ化します。

これはあなたの質問に答えるが、最後のリンクを実行するときにセクションを使用可能なメモリに手動で配置する特定のLdScript(リンカーとしてldを使用する場合)を使用したいと思うだろう。

+1

このツールはスタティックメモリのみを表示することに注意してください。ランタイムメモリの使用量は大きくなります。どのくらいの大きさがプログラムに依存し、それはスタックとヒープの使用です。 –

+0

"ldd"を使って共有ライブラリをチェックすることもできます。 "ldd"と "size"を使うと、ライブラリを含むどのくらいのROM/RAMが使われているかを推測できます。 – Wonil

関連する問題