世代別ガベージコレクションとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 世代別ガベージコレクションの意味・解説 

世代別ガベージコレクション

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/08/01 22:19 UTC 版)

世代別ガベージコレクション (: generational garbage collection) はガベージコレクションの手法のひとつである。別名として、ジェネレーション・スキャベンジング (: generation scavenging) とも呼ばれる。以下、ガベージコレクションをGCと省略する。

概要

GCを持つ言語上で動く実システムでは、経験上メモリオブジェクトの利用に、ある偏りが存在する。それは「計算途上で利用される一時オブジェクトは数が多く、かつすぐさま破棄される率が高い」「ある程度長く生存したオブジェクトは、以降も長く生存する率が高い」という傾向である。

この傾向に着目し、メモリ領域を2つの世代に分離する。

  • 第1世代 (young generation) に属するオブジェクトは小さな領域で高速なコピーGCを繰り返し、積極的に回収する。
  • 第2世代 (old generation) に属するオブジェクトは基本的に回収せず、システム全体のメモリが不足するようならマーク・アンド・スイープなどで整理する。

というルールを与える。そして第3のルールとして

  • 第1世代の回収をある一定回数生き延びたオブジェクトは第2世代に移動する。

を考えるのが世代別GCである。

世代別GCは汎用のGCとしてバランスに優れており、また世代間移動のしきい値や第1世代領域のサイズなど、チューニングがしやすいこと、仮想記憶との相性が良いことなど、利点が多い。特にオブジェクト指向プログラミング言語との相性が良いため、Java (1.2以降[1]) や.NET FrameworkRuby (2.1以降) などに採用されている。.NET FrameworkではGeneration 0, 1, 2の3世代に分かれている[2]Pythonでは主に参照カウント方式によるライフサイクル管理がなされるが、補助的に(伝統的なマーク&スイープとは逆順の探索アルゴリズムによる)世代別GCを併用している[3][4]

脚注

関連項目


世代別ガベージコレクション

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/27 10:00 UTC 版)

ガベージコレクション」の記事における「世代別ガベージコレクション」の解説

「世代別ガベージコレクション」も参照 従来GCは、対象となるメモリ領域いっぱいになった時に一気GC行なうものであり、この方法では、メモリ領域サイズ大きくなる従いGC時間長くなっていく欠点がある。この問題対処するために世代別ガベージコレクションが考案された。世代GCでは新領域と古い領域メモリ領域分けられ新規に作成されオブジェクトは、新領域配置され、新領域いっぱいになった時点で、新領域内部だけのGCが走る。このGCメモリ全体対すGC比べる当然のことながら低負荷高速になる。新領域対すGC一定回数生き残ったオブジェクトは、古領域移動し、古領域いっぱいになった時に初め全てのメモリ領域対象とするFULL GCが行われる。

※この「世代別ガベージコレクション」の解説は、「ガベージコレクション」の解説の一部です。
「世代別ガベージコレクション」を含む「ガベージコレクション」の記事については、「ガベージコレクション」の概要を参照ください。

ウィキペディア小見出し辞書の「世代別ガベージコレクション」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「世代別ガベージコレクション」の関連用語

世代別ガベージコレクションのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



世代別ガベージコレクションのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの世代別ガベージコレクション (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのガベージコレクション (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS