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

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]

脚注

関連項目



このページでは「ウィキペディア」から世代別ガベージコレクションを検索した結果を表示しています。
Weblioに収録されているすべての辞書から世代別ガベージコレクションを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書から世代別ガベージコレクション を検索

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

辞書ショートカット

すべての辞書の索引

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

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

   

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



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

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

©2025 GRAS Group, Inc.RSS