pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

ガベージコレクションとは

プログラムが確保したが、不要になったメモリ領域を自動開放する言語の機能

・確保済み領域の要否を自動判断
 変数やオブジェクトから参照されてるか?で判断
・開発者がメモリ開放処理を忘れても、安全に開放する。
 

メモリリーク(解放漏れ)を防ぐ
×システム負荷増

 

プログラムが確保するメモリ領域の種類

タイプ 確保・解放 割当容量
ヒープ領域 任意に可能 不定
スタック領域 順番あり(下→上・上→下) 固定

 
ヒープ領域とは?スタック領域との違いや具体的な管理方法を解説!|ITトレンド
「LINUXのヒープ領域について」(1) Linux Square − @IT
 
ヒープ領域は使いやすいが、メモリリークが発生しやすい。
ガベージコレクションは、ヒープ領域のメモリリークを防ぐ。
 

ヒープ領域にはNewとOld領域がある

タイプ 格納されるオブジェクトの寿命
New 短い
Old 長い

 

ガベージコレクションの種類

タイプ 対象領域 発生頻度 効果 負荷
Scavenge GC New
Full GC All

Full GCは非常に重い処理で、動くとアプリ応答遅延が発生する。
なので、動かないようにすべきもの。