書誌情報
- 著者: 中村成洋
- 発行日: 2011-06-27
- 最終更新日: 2012-02-03
- バージョン: 1.0.0
- ページ数: 62ページ(A4PDF版換算)
- 対応フォーマット: EPUB, PDF
- 出版社: 達人出版会
対象読者
高度なGCのアルゴリズムに興味のある方。すでに『ガベージコレクションのアルゴリズムと実装』を読まれていて、続きを読みたい方
著者について
中村成洋
中村成洋(nari)はネットワーク応用通信研究所に勤めているRubyistです。仕事ではRailsを使ってWebアプリケーションを開発しています。高校を卒業してからはアイス工場に2年半いて、それからプログラマに転職しました。
GCに魅了されてしまった人間で、GC歴は4年になります。CRubyのコミッタとして1年に1度のペースでGCの改善に取り組んでいます。去年はCRubyに新しく取り込まれたLazySweepGCを作りました(バージョン1.9.3で使えるはず)。
『ガベージコレクションのアルゴリズムと実装』(GC本)では、いろいろなGCの実装を読んで解説しました。この経験から言語処理系のGCを読むという老後も続けられそうな趣味を見つけました。読んだGCの内容を忘れてもいいように本という形で残せればと思っています。
(photo: by Koichiro Ohba, from flickr (CC-BY 2.0))
目次
はじめに
- まえがき
- 注意事項
- 読者対象
- 本書の表記
- 並列・並行GC
第1章 G1GCとは
- G1GCとリアルタイム性
- ヒープ構造
- 実行概要
- 並行マーキングと退避
第2章 並行マーキング(Concurrent Marking)
- 並行マーキングとは
- マーク用ビットマップ
- 実行ステップ
- ステップ1—初期マークフェーズ
- ステップ2—並行マークフェーズ
- ステップ3—最終マークフェーズ
- ステップ4—生存オブジェクトカウント
- ステップ5—後始末
- まとめ
第3章 退避(Evacuation)
- 退避とは
- 退避用記憶集合
- 退避用ライトバリア
- 退避用記憶集合維持スレッド
- ホットカード(Hot card)
- 実行ステップ
- ステップ1—回収集合選択
- ステップ2ールート退避
- ステップ3—退避
- マーク情報の援助
- まとめ
第4章 ソフトリアルタイム性(Soft real-time)
- ユーザの要望
- 退避時間の予測
- 予測信頼度
- 停止のスケジューリング
- 並行マーキングの停止処理
第5章 世代別G1GC方式(Generational garbage-first mode)
- 異なる点
- 新世代リージョン
- 世代別なオブジェクト退避
- 実行概要
- 世代別な回収集合選択
- 新世代リージョン数上限決定
- GCの切り替え
- GC実行タイミング
まとめ
- 関連図
- メリット
- デメリット
- おわりに
付録
- 参考文献
- レビュアのみなさんから一言
- 謝辞
- あとがき