メモリコンパクション(Memory Compaction)は、OSやランタイムがメインメモリ(RAM)内のデータ配置を整理し、断片化(フラグメンテーション)した空き領域を、連続した大きな一つの領域にまとめる機能です。長時間使用によるメモリの細分化を解消し、大容量のメモリ確保を可能にして、システム全体のパフォーマンス低下やメモリ不足によるエラーを防止します。
メモリコンパクションの仕組みと役割
- 目的: メモリの断片化(フラグメンテーション)の解消。
- 動作: メモリ上にバラバラに存在する利用中領域を移動し、空き領域を一方に集めることで、まとまった広大な空き空間を作り出す。
- メリット:
- 連続したメモリ確保: まとまったサイズのメモリが必要な処理を実行可能にする。
- 利用効率向上: 小さく分断された空き領域を無駄なく利用できる。
- デメリット/注意点: データを移動する際にCPUリソースを使用するため、実行中に一時的なパフォーマンス低下(ポーズ)が発生する場合がある。
ガーベジコレクション(GC)との違い
よく混同されるが、役割が異なる。
- ガーベジコレクション(GC): メモリ内の「不要になった領域(ゴミ)」を片付けて空き領域を増やす。
- メモリコンパクション: 既存の「使っている領域」を並べ替えて、空き領域を整理する。
デフラグメンテーションとの違い
- メモリコンパクション: メインメモリ(RAM)を整理する。
- デフラグメンテーション: ハードディスクやSSD(外部記憶装置)を整理する。
メモリコンパクションは、特にJavaのJVM(Java Virtual Machine)やAndroidのメモリ管理、長時間稼働するサーバーなどで重要な機能となっている。

コメント