メモリコンパクション | Programming Place Plus 用語集

トップページ用語集

名称

解説

メインメモリ内のデータの配置を整理し、未使用領域が1つの連続的な領域になるようにして、フラグメンテーションを解消することです。

確保解放が繰り返し行われると、その順序や大きさの傾向(またメモリ管理のアルゴリズム)によっては、メインメモリ上の未使用領域が飛び飛びになるフラグメンテーション(断片化)が発生することがあります。通常、メインメモリに領域を確保するときには連続的な未使用領域が必要であって、飛び飛びになっている未使用領域をかき集めて使うようなことはできないため、フラグメンテーションは致命的な問題になり得ます。

メモリコンパクションは、メインメモリ上にあるデータを隙間なく詰め直し、広大な1つの未使用領域ができるようにします。ただし、C言語のように、メモリアドレスを直接保持するポインタの仕組みがあるプログラミング言語では、実現が困難です(整理されると、メモリアドレスが変わってしまうので)。

処理系フレームワークなどが行うガーベジコレクションとともに、メモリコンパクションが行われることがあり、メインメモリを整理する機能としてまとめて語られることがありますが、両者が行うことは異なっており、別のものです。

なお、メモリコンパクションと同様のことをストレージで行う場合は、デフラグメンテーションと呼ばれます。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る