SlideShare a Scribd company logo
1 of 84
Download to read offline
地獄のGC本
                                  スピンオフ
                                  Spin off from GC book

                                     nari/中村 成洋
                                ネットワーク応用通信研究所
地獄のGC本                                           Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
自己紹介
自己紹介

       ✓ nari/中村 成洋
               ✓ @nari3, id:authorNari

       ✓ NaCl勤務
       ✓ 島根の方から来ました

                                                    2/83
地獄のGC本                                   Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
本を書きました!
おかげさまで好評です :)
遅いね




                                                 5/83
地獄のGC本                                Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
数少ないGCファンに朗報
やつらがよりマニアックに
  なって帰ってきた!
GC本のスピンオフ本が
 達人出版会様から
  来月(?)出ます
タイトル
マニア度
前の本




                                               12/83
地獄のGC本                                Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
今回の本




                                                13/83
地獄のGC本                                 Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
玄人向け
(けどGC本読んだ人ならわ
     かるよ!!)
G1GCとは
G1GCとは

       ✓ OpenJDK7(Java7)から入る新
         しいGC
       ✓ 高性能マシン向け(大容量メモリ、
         メニーコア)
               ✓ Mostoly Concurrent GCの代わりとなる

                                                   16/83
地獄のGC本                                    Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
今回はアルゴリズムのみ


       ✓ アルゴリズムに集中して紹介
       ✓ 詳細な実装については触れてい
         ない


                                         17/83
地獄のGC本                          Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
元論文

       ✓ Garbage-First Garbage Collection
       ✓ 死ぬほど難しい
               ✓ はしょってるところ大杉
               ✓ 実装を知ってないと完全把握は無理


                                               18/83
地獄のGC本                                Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
G1GCの魅力
予測可能性をもつGC
GCにかかる時間を予測

       ✓ この領域のGCはどのくらい時間
         がかかりそうか?
               ✓ 停止時間の話

       ✓ GCによる停止時間を調整

                                         22/83
地獄のGC本                          Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
並行・並列のハイブリット
     GC
並行、並列のハイブリットGC

       ✓ 基本的にはミューテータと並行し
         て動作
       ✓ やむおえず停止処理する場合は
         並列で
               ✓ メニーコアを意識

                                         24/83
地獄のGC本                          Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
マークはあくまで補助情報
G1GCの2つの機能


       ✓ 並行マーキング
       ✓ 退避
               ✓ コピーGCみたいなもん



                                                26/83
地獄のGC本                                 Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
それぞれ独立して動作する


       ✓ 退避は退避だけで動く
       ✓ 並行マーキングは並行マーキング
         だけで動く


                                         27/83
地獄のGC本                          Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
マークの結果は退避時の補助
           情報

       ✓ 停止時間の予測に使用
       ✓ オブジェクトの生死判定の参考に
       ✓ マークがなくても退避はできる!

                                         28/83
地獄のGC本                          Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
続きはG1GC本で
Q&A
Q:なぜ名古屋で
 そんな話を?
A
A:名古屋以外のどこでする
     んですか!
GC本読書会


       ✓ CSNagoyaさん主催
       ✓ 全11回
       ✓ 全部読んでもらった

                                                  35/83
地獄のGC本                                   Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
ほんとにありがとうございま
      す
呼んでもらったこともあった




                                         37/83
地獄のGC本                          Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
GCに関するLT大会
名古屋の人ちょっとおかしい…
        ですね…?




                                         43/83
地獄のGC本                          Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
GC本にゆかり深い名古屋
で発表しようとやって参りま
     した :)
Q:もしかして「実装編」もあ
    るんですか?
A:あります
ただし、もう少し時間がかか
     ります…
経緯
GC本でHotspotVMの説明
   が40P程あった
じゃあ、達人出版会様で…
ちとアルゴリズムの記述が
   足りないな…
結局アルゴリズム編をすべ
 て書き下ろし… orz
なので、あと半年か、1年くら
  い待ってね、という
ちょうどJava7がでるくらい
     には!ね!
Q:GC本を読む意味があり
     ますか?
・・・。
       http://www.flickr.com/photos/statelibraryofnsw/3210838977/in/photostream/
今までは
「正直、わかりません」
  と答えてきた
答え的なものを
ひねり出してみよう
この場合の「意味」とは?
「意味」=「役立つ」?
何の役に立つのか?
       ✓ メモリを意識したプログラミング?
               ✓ そんなもんGCの概要をしっとけばいい

       ✓ GC関連のバグに強くなる?
               ✓ それは年何回の話ですか?

       ✓ 劇的なプログラミング力向上
               ✓ ないない(著者保証)
                                              61/83
地獄のGC本                               Powered by Rabbit 0.6.5
スピンオフ - Spin off from GC book
Oh...
ところでCSNagoyaでは。
「明日の仕事に
 役立たない」
はたして「意味」はあるの
     か?
いや、そこに「意味」はある
      よ!
楽しさ
この楽しいってこと意味が
  あるのではないか?
「意味」 != 「役立つ」
ある禅問答
私が考えるに
「語るべき意味はなく
  行為そのものが
   意味である」
GC本を読んで楽しむことに
 意味があるのではないか
Q:GC本を読む意味があり
     ますか?
A:読んでみてください
なんか、結局、なんだかわら
   ない結論に…。
とりあえず
Enjoy

More Related Content

Viewers also liked

Javaのプログラムはどうやって動いているの? GC編
Javaのプログラムはどうやって動いているの? GC編Javaのプログラムはどうやって動いているの? GC編
Javaのプログラムはどうやって動いているの? GC編Yuichi Sakuraba
 
Parallel worlds of CRuby's GC
Parallel worlds of CRuby's GCParallel worlds of CRuby's GC
Parallel worlds of CRuby's GCNarihiro Nakamura
 
Java hotspot vmに おけるGCの振る舞い
Java hotspot vmにおけるGCの振る舞いJava hotspot vmにおけるGCの振る舞い
Java hotspot vmに おけるGCの振る舞いDi Ai
 
第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみた第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみたchonaso
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考えるchonaso
 

Viewers also liked (13)

Rubyによる本気のGC
Rubyによる本気のGCRubyによる本気のGC
Rubyによる本気のGC
 
Javaのプログラムはどうやって動いているの? GC編
Javaのプログラムはどうやって動いているの? GC編Javaのプログラムはどうやって動いているの? GC編
Javaのプログラムはどうやって動いているの? GC編
 
Parallel worlds of CRuby's GC
Parallel worlds of CRuby's GCParallel worlds of CRuby's GC
Parallel worlds of CRuby's GC
 
Java hotspot vmに おけるGCの振る舞い
Java hotspot vmにおけるGCの振る舞いJava hotspot vmにおけるGCの振る舞い
Java hotspot vmに おけるGCの振る舞い
 
RUBYLAND
RUBYLANDRUBYLAND
RUBYLAND
 
Fxxking gc.c
Fxxking gc.cFxxking gc.c
Fxxking gc.c
 
Symbol GC
Symbol GCSymbol GC
Symbol GC
 
GC FAQ
GC FAQGC FAQ
GC FAQ
 
Ruby's GC 20
Ruby's GC 20Ruby's GC 20
Ruby's GC 20
 
第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみた第七回 渋谷Java - Apache Shiroを使ってみた
第七回 渋谷Java - Apache Shiroを使ってみた
 
GCが止まらない
GCが止まらないGCが止まらない
GCが止まらない
 
第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える第六回渋谷Java Java8のJVM監視を考える
第六回渋谷Java Java8のJVM監視を考える
 
Java8勉強会
Java8勉強会Java8勉強会
Java8勉強会
 

More from Narihiro Nakamura

桐島、Rubyやめるってよ
桐島、Rubyやめるってよ桐島、Rubyやめるってよ
桐島、RubyやめるってよNarihiro Nakamura
 
Parallel worlds of CRuby's GC
Parallel worlds of CRuby's GCParallel worlds of CRuby's GC
Parallel worlds of CRuby's GCNarihiro Nakamura
 
シャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできることシャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできることNarihiro Nakamura
 
GC生誕50周年を祝って
GC生誕50周年を祝ってGC生誕50周年を祝って
GC生誕50周年を祝ってNarihiro Nakamura
 
シャイなRubyistにできること
シャイなRubyistにできることシャイなRubyistにできること
シャイなRubyistにできることNarihiro Nakamura
 
Railsハイパー実践講座-第35回NaCl勉強会
Railsハイパー実践講座-第35回NaCl勉強会Railsハイパー実践講座-第35回NaCl勉強会
Railsハイパー実践講座-第35回NaCl勉強会Narihiro Nakamura
 
Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会Narihiro Nakamura
 
RubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフRubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフNarihiro Nakamura
 
本当は怖いObjectSpace.each_object
本当は怖いObjectSpace.each_object本当は怖いObjectSpace.each_object
本当は怖いObjectSpace.each_objectNarihiro Nakamura
 
Talk In Point Of Gc Once In While
Talk In Point Of Gc Once In WhileTalk In Point Of Gc Once In While
Talk In Point Of Gc Once In WhileNarihiro Nakamura
 
Rubyはゲームの夢を見るか
Rubyはゲームの夢を見るかRubyはゲームの夢を見るか
Rubyはゲームの夢を見るかNarihiro Nakamura
 

More from Narihiro Nakamura (14)

桐島、Rubyやめるってよ
桐島、Rubyやめるってよ桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
 
Parallel worlds of CRuby's GC
Parallel worlds of CRuby's GCParallel worlds of CRuby's GC
Parallel worlds of CRuby's GC
 
シャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできることシャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできること
 
GC生誕50周年を祝って
GC生誕50周年を祝ってGC生誕50周年を祝って
GC生誕50周年を祝って
 
シャイなRubyistにできること
シャイなRubyistにできることシャイなRubyistにできること
シャイなRubyistにできること
 
Railsハイパー実践講座-第35回NaCl勉強会
Railsハイパー実践講座-第35回NaCl勉強会Railsハイパー実践講座-第35回NaCl勉強会
Railsハイパー実践講座-第35回NaCl勉強会
 
Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会
 
RubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフRubyのGC改善による私のエコライフ
RubyのGC改善による私のエコライフ
 
絶対復習について
絶対復習について絶対復習について
絶対復習について
 
AlgorithmDesign01
AlgorithmDesign01AlgorithmDesign01
AlgorithmDesign01
 
make of MiniGC
make of MiniGCmake of MiniGC
make of MiniGC
 
本当は怖いObjectSpace.each_object
本当は怖いObjectSpace.each_object本当は怖いObjectSpace.each_object
本当は怖いObjectSpace.each_object
 
Talk In Point Of Gc Once In While
Talk In Point Of Gc Once In WhileTalk In Point Of Gc Once In While
Talk In Point Of Gc Once In While
 
Rubyはゲームの夢を見るか
Rubyはゲームの夢を見るかRubyはゲームの夢を見るか
Rubyはゲームの夢を見るか
 

地獄のGC本スピンオフ