Weitere ähnliche Inhalte Mehr von Narihiro Nakamura (12) Kürzlich hochgeladen (12) GC本をGCしないための100の方法1. GC本をGCしないた
めの100の方法
100 tips to don't gc the gcbook
nari/中村 成洋
ネットワーク応用通信研究所
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
3. 自己紹介
✓ nari/中村 成洋です
✓ 福岡生まれ、島根在住
✓ NaCl勤務
2/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
4. 自己紹介
✓ GC歴 3.5年(駆け出し)
✓ ククク…やつはGC界の中で最弱
✓ アイス工場歴 3年
✓ 大体一緒くらい
3/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
20. 売り上げが好調
✓ みなさまのお陰ですね m(_ _)m
19/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
24. 読者の声
✓ 読みました!(※アルゴリズム編だ
け!)
✓ わかりやすかったです!(※アルゴ
リズム編が!)
✓ 楽しかったです!(※アルゴリズム
編が!)
23/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
32. GCについて述べられた本
✓ 英語版のものがある
✓ RJGC(1996) 14年前!!
✓ 日本語版は存在しなかった
31/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
33. RJGCと何が違う?
✓ GC本は実装の解説に挑戦してい
る
✓ GC実装の解説は世界初(だと思
う)!
32/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
35. Wikipedia(ja)
34/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
36. Wikipedia(en)
35/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
38. GC Wiki
id:authorNariさんエライねー
37/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
39. 前々から書きたかった
✓ 日本語のGC本を欲しかった
✓ たぶんGC本がでて一番嬉しいの
は俺!
✓ 自分が読みたいと思う物を書いた
(例:実装編)
38/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
42. 相川さんプロフィール
✓ 京大卒
✓ 東大院生(当時)
41/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
43. 中村プロフィール
✓ 工業高高校卒(機械化:訂正、機
械科)
✓ アイス工場退職
✓ 怪しいコンピュータスクール卒
42/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
44. 注:学歴社会
学歴(出身学校を含む)
がモノを言う社会。
[cited from `学歴社会 − はてなキーワード']
43/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
48. 内容
✓ 大卒の論文でGCのWikiを参考に
したそう
✓ GCで有名な京都の方にある研究室(Y
研)
✓ GCLover同士の出会い
47/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
49. その後
✓ 院でRubyのGCを研究
✓ 相川さんが笹田さんにお世話にな
る
✓ 回り回ってまたお知り合いに
48/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
50. GC勉強会
✓ 毎週Skypeで「GC勉強会」
✓ GCの論文の話しとか
49/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
51. そんな時
✓ 本の話が中村宛に来る
✓ 梅酒で酔っぱらって書いたブログ
を見てくれた
✓ 文章はやっぱり酔敲(推敲)が大事で
すね!
50/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
60.
http://d.hatena.ne.jp/authorNari/20090413/1239625384
62.
http://d.hatena.ne.jp/authorNari/20090413/1239625384
64. 企画が通るかも怪しかった
✓ 誰得ですか?
✓ コレ売れるのか?
63/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
65. でも、そこをなんとか
✓ 敏腕編集者さんのテクニックでな
んとか切り抜け
✓ 先見の明があるよなー
64/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
69. 404 Blog Not Found
これほど地味かつ即実
務に役立たない、しかし
確実にプログラマーの
滋養になる本が出版さ
れる日本の出版界に乾
杯!世界で二番目(著者
調べ)、国内で初のGC
本は、実に滋味豊かだ。
[cited from `Every Byte is Sacred − 404 Blog Not Found']
68/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
70. 404 Blog Not Found
しかしこれだけ多彩な
アルゴリズムを実装とと
もに図解した本は今ま
でなかった。
[cited from `Every Byte is Sacred − 404 Blog Not Found']
69/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
71. ホットコーナーの舞台裏
世界でも2冊目。すなわ
ち、オリンピック&パラリ
ンピックなら銀メダル。
\(^O^)/ガベコレマニ
アはもちろん、メモリ管
理を知りたい人は役立
つ本。
[cited from `ガベージコレクションのアルゴリズムと実装。
洋書ガベコレ本の話題も − ホットコーナーの舞台裏']
70/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
72. Twitterの反応
71/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
73. 他にも色々な感想を頂いてます
✓ 以下のURLにまとめ
✓ http://b.hatena.ne.jp/authorNari/gcbook
72/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
78.
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/01/01.html
79.
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/01/01.html
80. 竹内郁雄先生について
✓ 竹内関数の生みの親
✓ 様々な言語にtak関数ベンチマークがあ
る
✓ 最終講義:研究・開発は楽しく
✓ 素晴らしいのでぜひ資料を見て欲しい
✓ http://www.slideshare.net/RC3/
ss-3332047
79/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
81. オブジェクトの供養
80/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
83. 相川さん=>笹田研=>竹内研
✓ よく分からないけどこんな感じで
お願いできた
✓ 退官される忙しい時期にお願い
✓ 快く了承してもらう
82/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
84. すべての原稿をレビュー
✓ 特にアルゴリズム編はよく読んで
いただいた
✓ 多くの原稿は電車の中で読まれ
たそう
83/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
85. ドラクエIX問題
✓ ドラクエIXがレビュー時期に発売
✓ 竹内先生はドラクエが好き
✓ 電車の中でプレイ可能な
NintendoDS
84/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
87. とはいえ遅れなく
✓ さまざま指摘を頂いた
✓ 優しくも厳しい、絶妙
✓ レビュー結果は真鵺道にて記述
86/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
88. 真鵺道
[α/β] αをβで置き換えた
[α/] αを削除した
[/α] αを挿入した
[α|γ|β]αγβをβγαにした
たとえば, [鹿|と|馬]
[α||β] αβをβαにした
[…★γ] γは…という修正に対するコメント
------ 修正を伴わなくても[…★γ]
87/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
91. diffだと困る例
原文:りックに詰る弁当
diff:
- りックに詰る弁当
+ リックに詰める弁当
90/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
93. 真鵺道ならば
原文:りックに詰る弁当
真鵺道:
[り/リ]ックに詰[/め]る弁当
92/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
95. 優れた点
✓ 間違っている場所がわかりやすい
✓ ルールが少なく、覚えやすい
✓ s/a/b/ のルールに似ている
94/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
99. 素晴らしい帯
古(いにしえ)からの魔
法、ガベージコレクショ
ンの秘密を完全解説
[cited from `ガベージコレクションのアルゴリズムと実装
− 帯']
98/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
110. レビューのやりとり
✓ 著者間レビュー
✓ 編集者レビュー
✓ 監修者レビュー
✓ レビュアレビュー
109/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
117. 表紙買いする人も多い
✓ GCという文字は編集者さんの手
作り
✓ 写真も選んでもらった
116/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
118. るびまのGC記事
✓ GCを本棚に例えた
117/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
121. 実装編
✓ CPython
✓ DalvikVM(Android)
✓ Rubinius(Ruby)
✓ V8(Google Chrome)
120/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
122. 大変だった
✓ GCを読むためにはVMとかにも手
を出さないと行けない
✓ しかも、その辺りを書くわけにはい
かない
✓ 計:4個…っ
✓ ソースコードの引用は極力少なく
121/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
123. GCに興味がない人でも
✓ 超一流プログラマの工夫が書い
てある
✓ 楽しいと思う
122/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
126. 書けなかった章
✓ 並列、並行GCについて書けな
かった
✓ HotspotVMの章が50ページくらい
125/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
135. 歴史は古い
✓ 1960年に論文発表
✓ 今年は「GC生誕50周年」!!
✓ GCイヤー
134/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
140.
http://www.flickr.com/photos/null0/272015955/
141. どんな人?
✓ LISPの父
✓ 人工知能の父
✓ チューリング賞受賞
140/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
143. GCとのつきあい
✓ 実はGCの父でもある
✓ Mark Sweep GC
✓ 50年前に論文を発表
142/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
144. LISPからGCは産まれた
✓ 最初はなかった
✓ Listの操作とかが面倒だったらし
い
✓ ほどなくしてD. Edwardsが実装し
たそう
143/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
146. ルンバ
145/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
148. やっぱゴミ集めはLispに
任せろって
[cited from `Lightweight Language Weekend: Language
Update(Common Lisp) 竹内郁雄先生']
147/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
150.
taken by Bcjordan : http://en.wikipedia.org/wiki/File:Marvin_Minsky_at_OLPCb.jpg
151. どんな人?
✓ 人工知能の父
✓ チューリング賞受賞
150/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
152. GCとのつきあい
✓ GCアルゴリズムを作成
✓ Copy GC(47年前)
151/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
155. 経歴
✓ ダイクストラ法(最短経路問題)
✓ セマフォ考案
✓ チューリング賞受賞
154/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
156. GCとのつきあい
✓ 三色マーキング
✓ Dijkstraのライトバリア
155/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
158.
Flickr user Jacob Appelbaum : http://flickr.com/photos/ioerror/56359970/in/set-1220741/
159. 経歴
✓ Tex
✓ METAFONT
✓ The Art of Computer
Programming 鋭意執筆中
✓ チューリング賞受賞
158/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
160. GCとのつきあい
✓ Lisp2(マークコンパクトGC)
159/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
162.
http://labs.oracle.com/people/mybio.php?uid=25706
163. 経歴
✓ Schemeの設計
✓ Java言語仕様まとめ
✓ 並列アルゴリズムの研究
✓ ACMグレース・ホッパー賞受賞
162/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
164. GCとのつきあい
✓ 並列GCの論文発表(学生時代)
✓ ACM Student Award 1975の1位
論文
✓ GCの研究で世界的に有名になっ
た
163/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
166.
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/01/01.html
167. 経歴
✓ 竹内関数(≒tak関数)
✓ LISPの神様
✓ TAO
✓ 未踏ソフトウェア事業
166/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
168.
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/01/01.html
169. GCとのつきあい
✓ 実時間 GC アルゴリズム実装 =>
TAO
✓ GC本監修を引き受けてくださっ
た!!
168/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
172. 経歴
✓ Ruby作者
✓ 日経BP技術賞大賞受賞
171/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
173. GCとのつきあい
✓ CRubyにGCを実装
✓ お仕事でGCを実装(レア!)
172/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
175. 竹内先生曰くGCとは
50年近くも火が消えず
に (ボーボーと燃えてい
るわけではないが) 研
究が続けられている基
幹技術である。
[cited from `2008年度下期未踏ユース「オープンかつ
ポータブルなデータベースガーベジコレクション」採択理
由']
174/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
178. 私が考える魅力
1. 制約が多い
177/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
180. GCは自由ではない
✓ 言語処理系に気を遣ったり
✓ OSに気を遣ったり
179/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
183. 私が考える魅力
1. 制約が多い
2. 広い土壌
182/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
185. 広い土壌
✓ 様々な人を受け入れる寛容さ
✓ 偉人達を見てもいろんな分野の人
が!!
184/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
186. 私が考える魅力
1. 制約が多い
2. 広い土壌
3. 楽しい
185/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
188. 楽しい
✓ 純粋に楽しい
✓ 偉人達のCoolな工夫が見れる
✓ さっぱり上手く行かない、から楽し
い
187/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
189. 私が考える魅力
1. 制約が多い
2. 広い土壌
3. 楽しい
4. 勉強になる
188/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
191. それぞれの偉人達を振り返る
✓ 決してGCが本業ではない
✓ それ以外の分野で大きな実績
✓ GCは修行であった
190/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4
195. 最後に後書きから引用
本書を必要とする人に、
本書が届くことを、心か
ら願っています。
[cited from `あとがき − ガベージコレクションのアルゴリ
ズムと実装']
194/195
GC本をGCしないための100の方法 - 100 tips to don't gc the gcbook Powered by Rabbit 0.6.4