修 士 論 文 の 和 文 要 旨

修
研究科・専攻
大学院
氏
尾沢 崇
名
論 文 題 目
要
士
論
文
の
情報理工学研究科
和
文
要
旨
情報・通信工学専攻 博士前期課程
学籍番号
1031025
旧世代領域の分割を行うインクリメンタルな世代別実時間ごみ集め
旨
近年,スマートフォンや携帯ゲーム機などの普及により,比較的リソースの少ない環境における
アプリケーションの実行が増加している.そのような環境下において,手動によるメモリ管理は複
雑であり,バグの原因となるため,メモリ管理を自動的に行うガベージコレクションの機構は重要
である.しかし,ガベージコレクションはメモリの走査を行うためにユーザプログラムを停止させ
る必要があり,特にゲームなどのリアルタイム性が重視されるアプリケーションにおいて,この停
止時間が問題となる.
インクリメンタル GC は,GC 処理によるユーザプログラムの停止時間を短縮するために,GC の
処理を分割する.しかし,分割により,リードバリアやライトバリアのような,ユーザプログラムに
よるオブジェクトの変更を検知する機構が必要になり,オーバヘッドが発生する.
世代別 GC は走査の対象を短寿命のオブジェクトに限定することで停止時間を短くする.
Treadmill GC は,4 つの双方向リストを用いて,リストの繋ぎ替えを利用することで,物理的にオ
ブジェクトを移動させずにメモリを管理する.この手法では,ライトバリアに比べ処理に時間のか
かるリードバリアが不要である.
こ の イ ン ク リ メ ン タ ル GC の う ち ,世 代 別 GC に Treadmill GC の 考 え を 取 り 入 れ た
Opportunistic Treadmill GC がある.この手法はメモリ領域を新世代領域と旧世代領域に分割し,
走査の必要がないオブジェクトを走査対象から外すことで,走査すべきオブジェクトの数を減ら
す.また,リードバリアを必要としない.しかし,メモリ領域が大きく不足した時は,長寿命のオブジ
ェクト(旧世代)の走査も必要となる.
本研究では,Opportunistic Treadmill GC を拡張し,メモリ領域が不足した時,旧世代を分割し,
一定数のオブジェクトを新世代に加え,インクリメンタルに走査することで最大停止時間を減ら
す手法 Caterpillar GC 提案し,実装とテストプログラムによる実験を行った.その結果,総停止時間
を 1.7 倍程度に抑えつつ,最大停止時間を最大で従来手法の 15%程度まで短縮できた.