Home¶ Welcome to the Memory Management Reference! This is a resource for programmers and computer scientists interested in memory management and garbage collection.
目的 メモリリークの調査方法をまとめる。 環境 OS: CentOS 5.5 Kernel: 2.6.18-194.el5 x86_64 GCC: gcc 4.1.2 20080704 GDB: GNU gdb 7.0.1-23.el5 Valgrind: valgrind-3.5.0 サンプルプログラム メモリリークが起きるサンプルとして以下を利用する。 leak_func() が実行される度に 2048 bytes メモリリークする。 合計で 101 回 leak_func() が実行されるので 206848bytes(= 2048 * 101 bytes) リークする。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
linux-2.6.16.1でのメモ。 1. 概要 Buddy Systemでは物理ページ単位のメモリの確保になるため、あるメモリオブジェクト(例えばプロセスのtask_structとか)を動的に確保するのには向いていない。スラブアロケータではBuddy Systemとの間に入り、メモリオブジェクトの確保/解放機能を提供する。 スラブアロケータでは、あらかじめメモリオブジェクトに対してキャッシュ(kmem_cache)を作っておき、そのキャッシュからメモリオブジェクトを取得する形をとる。キャッシュは足りなくなれば自動的に確保されるようになっている。 Slabから取得するバッファはBuddy Systemから取得しており、以下の特徴がある。 仮想アドレスに対して物理ページが割り当て済み(アクセスしてPageFaultになることはない)物理的に連続ページ 2. スラブアロケータの特長スラブアロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く