2010-12-07 8 views
2

実行可能ファイル(または共有ライブラリ)からデバッグシンボルを削除すると、使用されるメモリ量が減りますか? (私はそれがディスクファイルのサイズを縮小することを知っています - 私がここで興味を持っているのは実際に使用されるRAMです)。は、Linux上のメモリにロードされたデバッグシンボルですか?

p.13のDrepperの論文(http://www.akkadia.org/drepper/dsohowto.pdf)は、「通常のシンボルテーブルは実行時には使用されないため、バイナリを削除する必要はありませんそれの "。

OTOHの場合、ストリップのマニュアルページには、「削除されたバイナリはRAMのスペースを占有しません」と記載されています。

いくつかの簡単なテストに基づいて、Drepperは正しいと思われます(驚くことはありません)。したがって、ストリップのマニュアルページが間違っています。

誰でも確認/拒否できますか?

TIA ...ブートプログラムの起動を高速化するために先読みを使用するシステムで

+0

両方の場合に/ proc/[pidno]/mapsを見る傾向があります。 –

+0

@Chris Stratton:マッピングのページはデマンドロードされているので、 'maps'はアドレス空間の使用方法についてのみ示しています。使用法。 – caf

+0

まず、マップされていなければ、RAMをとることはまずありません。第二に、ファイルのどの部分を読み込むことができるかは、ある特定の瞬間に実際の物理的なRAMにロードされていると予想されるページよりもはるかに決定論的な答えを持つ質問であると思います。それを実行するシステム。 –

答えて

0

、デバッグシンボルがファイルキャッシュに廃棄物のメモリを行います。

+0

ELFローダーは、対応する範囲で 'madvise(MAD​​V_DONTNEED)シンボルをデバッグする。 – caf

+0

@caf:readaheadはまだ最初の場所でデータを読み込むのに時間を無駄にしていました。 –

関連する問題