機能

プログラムが確保したメモリ領域のうち不要な箇所を開放する

メモリ管理

  • 割り当て
  • 開放

GCの有無

    • メモリ管理コードを自力で開発する必要あり(C言語など)
    • 不完全な管理コードでは開放が十分にできずにメモリリークが発生する恐れあり
    • 自動的に開放される。プログラム作成は不要。(Java, PHPなど)

ScanとFull

  • ヒープ領域:あるプログラムが使用できるメモリ領域
    オブジェクトの残存時間で2種類

    • New:生成後すぐに廃棄
    • Old:長い間存在
対象領域 処理時間※
Scanvange GC New テーブルの上の掃除
Full GC New, Old 部屋の大掃除

※開放にかかる時間

 

システム影響

Webアプリケーション起動中にGCが発生 = システム影響
アプリケーションによってはScanはOK、FullはNG。などあり。

対策

  • オブジェクトを使いまわさない
    • Old領域への割り当てを回避
      →Full GC発生を回避
  • New領域を大きくとる
    • プログラム起動オプションで設定可能
    • Old領域への割り当てを回避
      →Full GCの発生を回避

参考