次の C プログラム 'pause.c' を考えてみましょう。
void main() { pause(); }
このコマンド 'gcc -Os pause.c -o pause' を使用して x64 Linux 3.0.0-16-generic でこれをコンパイルすると、サイズが ~8KB の実行可能ファイルが生成されます。この実行可能ファイルを実行し、'pmap -d PID' を使用して正確なメモリ フットプリントを調べると、プロセスに割り当てられたプライベート メモリが 192KB であることがわかります (通常、システムによって異なり、128KB から 192KB の間で異なります)。
valgrind と massif を使用してプロセスを調べると、メモリ割り当てイベントの検出に失敗します。192KB という数値が正確かどうかは懐疑的でしたが、「一時停止」プロセスの 5 つのインスタンスを開始すると、約 1MB のシステム メモリが消費されることがわかりました。
このメモリの起源を説明するのは途方に暮れています。このメモリが割り当てられている理由と、メモリを減らす可能性のある潜在的なアクションについて、誰かが洞察を提供できますか?