第9回 GC本読書会
2010年11月21日にCSNagoya勉強会の「第9回 GC本読書会」を開催しました。
ガベージコレクションのアルゴリズムと実装という本を読む会です。
第10章 DalvikVMのGC
今回はDalvikVMのGCの話です。DalvikVMってなんのVMと思いましたがAndroidのVMだそうです。AndroidはJavaでかけるのでJVMで動くんだとばっかり思っていたらそうではないようです。Androidがリソースの限られた携帯端末で使うことが想定されているので、それように軽量だったほうがいいとかそういうことのようです。
気になったこと・知らなかったことなど
・すべての親プロセスの「Zygote(ザイゴウト)」って語源は何?
・DalvikVMはマークスイープGC(ビットマップマーキング)
・DalvikVMはレジスタマシン(Javaといえばスタックマシンだが、これはAndroidが「ARM」上で動作するため)
・保守的GCを採用(これも速度を優先)
・基本的に関数名がながい(おかげでわかりやすい)
まとめ
60ページほどの長い章だったが、あまりトリッキーなことをしていないため割りと素直に読み進めることができた。携帯端末用のVMということでGC一つにしても数多くの工夫がしてあるのがわかり、世界中で使われ始めているAndroidというプロダクトの凄さに触れることができたと思う。
また章の前半はGCの話をするための下準備として、DalvikVMのオブジェクトのデータ構造やメモリ管理の仕組みについてページが割かれているのですが、この内容がとても濃い。単に「こういうデータ構造だよ」と概要を説明するだけでなく、要点を抜き出したソースコードも併記して詳しく解説がされてある。これだけの解説を書くのにどれほどのソースを読む必要があったのだろうかと思うと頭が下がる。
次回、その他
・「けんろん!」の話を聞くと学生のときに授業についていけなくなったときの感覚を思い出して胸が苦しくなるので見るのも嫌だ
・次回は12月4日NGK忘年会2010(夜の部) : ATNDに合流(12月5日はお休み)




