スポンサーリンク

【応用情報技術者試験】メモリコンパクション

メモリコンパクション(Memory Compaction)は、OSやランタイムがメインメモリ(RAM)内のデータ配置を整理し、断片化(フラグメンテーション)した空き領域を、連続した大きな一つの領域にまとめる機能です。長時間使用によるメモリの細分化を解消し、大容量のメモリ確保を可能にして、システム全体のパフォーマンス低下やメモリ不足によるエラーを防止します。 

メモリコンパクションの仕組みと役割

  • 目的: メモリの断片化(フラグメンテーション)の解消。
  • 動作: メモリ上にバラバラに存在する利用中領域を移動し、空き領域を一方に集めることで、まとまった広大な空き空間を作り出す。
  • メリット:
    • 連続したメモリ確保: まとまったサイズのメモリが必要な処理を実行可能にする。
    • 利用効率向上: 小さく分断された空き領域を無駄なく利用できる。
  • デメリット/注意点: データを移動する際にCPUリソースを使用するため、実行中に一時的なパフォーマンス低下(ポーズ)が発生する場合がある。 

ガーベジコレクション(GC)との違い

よく混同されるが、役割が異なる。 

  • ガーベジコレクション(GC): メモリ内の「不要になった領域(ゴミ)」を片付けて空き領域を増やす
  • メモリコンパクション: 既存の「使っている領域」を並べ替えて、空き領域を整理する。 

デフラグメンテーションとの違い

  • メモリコンパクション: メインメモリ(RAM)を整理する。
  • デフラグメンテーション: ハードディスクやSSD(外部記憶装置)を整理する。 

メモリコンパクションは、特にJavaのJVM(Java Virtual Machine)やAndroidのメモリ管理、長時間稼働するサーバーなどで重要な機能となっている。 

コメント