c - LIFOの順序ではなく、アドレスの順序でフリーリストを整理する利点は何ですか?

c list memory malloc

私はCでmalloc()を実装しています。現在、私の空きリストはLIFOの順序で維持され(つまり、新しく解放されたブロックがリストの先頭に追加されます)、アロケーターは最初のフィットアルゴリズムを使用してメモリの空きブロックを検索します。私の教科書では、アドレスの順序でリストを維持すると、この状況ではLIFOの順序のリストよりもメモリ使用率が向上すると述べていますが、理由がわからず、説明もありません。最終的にはバディシステムなどを実装しますが、今のところはこれを理解したいと思います。
答え
フリーリストをアドレスでソートすると、フリーブロックの結合(「デフラグ」)が簡単になります。2つのチャンクを大きなチャンクに結合することは、基本的に簡単です。
関連記事

c++ - C++でのCライブラリ関数の実装

c - malloc実装での空きリストの維持

c - Cのファイルから数値を読み取る

c - すでに印刷されている改行を削除するVT100エスケープシーケンス?

c - 独自のベーシックディスクスキャナーを作成する方法

c++ - 警告—ポインターと組み合わせた算術式の不審な切り捨て

c++ - GMP整数をベースN整数に変換する

c++ - GTKでキーボードとマウスの入力を取得するにはどうすればよいですか?

c - $ PATHのディレクトリをリストまたは配列として取得する方法は?

c - sedを使用した複数行構造の検出と連結