Mais conteúdo relacionado
Mais de Narihiro Nakamura (15)
G1GCへ伸びていた「いばらの道」
- 1. G1GCへ伸びていた
「いばらの道」
nari/中村 成洋
ネットワーク応用通信研究所
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 3. 第4回 OLO(2年前)
2/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 4. このとき話したこと
✓ 「GC黄金時代」
✓ GCの実装に未来があるという話
✓ ちょうどGC本を書いている時期
3/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 6. Amazonさん在庫切れ
5/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 8. 在庫が入ったみたい!!
7/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 11. 自己紹介
✓ @nari3
✓ CRubyコミッタ
✓ 島根のNaCl勤務
10/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 13. G1GCとは
✓ Java7から搭載されるGC
✓ ソフトリアルタイム性を意識
✓ 複雑怪奇なもの
12/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 14. 今回の本では
✓ アルゴリズムを解説
✓ 図も多く、平易に説明
✓ 理解が容易
13/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 19. 今日の話
✓ 本を書くまでの過程の話
✓ G1GCをどのように理解したか?
18/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 20. なぜそのような話を?
✓ 本という結果に対する話はよくあ
る
✓ 出版記念トークライブ
✓ 理解する過程の話は少ない
✓ 過程が重要
19/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 21. (注意)
✓ 一部は結果論
✓ 試行錯誤なのであまりまとまらな
い話
✓ 一般化して捉えるのは危険
20/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 23. G1GCとの初遭遇(4年前)
✓ 英語の論文が公開されていた
✓ deliciousのGCタグで知った
22/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 24. GCの英語論文
23/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 32. 理解への障害
✓ 知識不足
✓ 英語がわからない
✓ 専門用語がわからない
✓ 前提知識がない
✓ やる気が出ない
31/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 33. 実はにわたま問題
✓ 知識不足だからやる気が出ない
✓ やる気が出ないから知識不足
32/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 36. GC本の執筆
✓ 締切ドリブンを利用
✓ 書かなきゃダメな状況に自分を落
とし込む
35/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 39. 締切ドリブンは理解と相性が悪
い
✓ 中途半端な知識でもアウトプット
しなければならない
✓ 難しい問題の理解は勉強・思考・
休憩をセットにした長い時間が必
要
38/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 41. GCに関する多くの知識を仕入
れた
✓ 相川さん(共著者)の原稿レ
ビュー
✓ 勉強になった
✓ GCの実装を沢山読んだ
✓ 自信になった
40/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 45. 論文自体の問題
✓ 前提知識を必要とする
✓ 訳のわからない単語がいきなりでてくる
✓ 全体的に説明不足
✓ 誤解も生みやすい
✓ 複雑な仕組みなので仕方ない部
分でもある
44/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 48. 敵
✓ OpenJDKのHotspotVMコード
✓ GCだけで5万行
✓ C++で継承関係がスパゲッティ
47/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 49. どのように読むか?
✓ 様々なやりかた
✓ ひらメソッド
✓ 落下傘方式
✓ デバッガ方式
✓ 参考 <URL:http://itpro.nikkeibp.co.jp/article/
COLUMN/20070622/275606/>
48/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 51. 疑問をベースに
✓ 論文を読んで疑問に思った事柄を
きっかけにする
✓ e.g. タイムスライスとは? など
50/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 52. 疑問をベースに
✓ 疑問が新しい疑問を生んだ場合
はそちらを先に解決
✓ 大きな疑問 => 小さな疑問へ
✓ 小さな疑問を解決 => 大きな疑問
を解決
51/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 57. 作業ははじめるまでが大変
✓ はじめるのにはやる気が必要
✓ やる気は高価
✓ はじめるという意識をなくそう
✓ 自然にやっているという感覚が一番い
い
56/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 59. 細切れの時間
✓ 電車待ちの時間,電車の中
✓ 晩ごはんの後,お風呂の後
58/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 60. はじめる「障害」が少ない
✓ 毎日来るもの
✓ 「いまからやるぞ」という感覚をな
くすのが重要
59/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 64. 自分で決めたルール
✓ 必ずメモを取る -> org-mode
✓ ソースコードへのリンクを張ることが可
能
✓ 作業を中断しやすい
63/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 66. ツールを使う
✓ org-mode(emacs) -> メモ
✓ GLOBAL(gtags) -> 関数の定義・
呼び出し検索
✓ git -> grepが速い
65/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 69. 理解への障害
✓ 英語がわからない
✓ 専門用語がわからない
✓ 前提知識がない
✓ やる気が出ない
68/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 71. 小まとめ
✓ Try&Errorで頑張れ
✓ 得るものはある
✓ 問題を小さく小さく
✓ 自分の扱える範囲に
✓ 作業も小さく小さく
✓ 自分の習慣的な時間に
70/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 73. 重要ではないもの
✓ やる気
✓ 頑張り
✓ 徹夜
72/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 74. 絶対にいるもの
✓ 時間
✓ 習慣
✓ 執着
73/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 76. 深い理解へのサイクル
✓ 興味 -> 疑問 -> 思考 -> 疑問 ->
思考 ...
✓ 深く広く疑問は広がっていき、そ
れらを理解すると深い理解になる
✓ この作業は絶対的に時間がかか
る
75/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 81. 習慣
✓ 学ぶ習慣を付ける
✓ 日々の決まった箇所で少しずつ理
解
✓ 極力やる気を使わない方法で
80/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 83. 執着
✓ 諦めない、執着する
✓ 絶対達成するわけじゃないが、諦
めるよりは進める
82/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 88. 執筆
✓ 疑問を補足する
✓ みんな疑問に思うはずの場所
✓ わかりやすい本になる
✓ 自分が読み返せる
87/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 89. いい本
✓ 躓きづらい本
✓ 自分が見返していい本
✓ 深く理解した著者が書いた本
88/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 93. 死ぬとき
✓ 管理職に就いたとき?
✓ 定年説?(35歳?)
✓ 物理的に死ぬ?
(間違いじゃないが…)
92/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 97. 例えば専門用語
✓ Ajax
✓ G1GC new!!
96/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 101. 意識して思考停止する
✓ すべての技術は理解できない
✓ 自分には興味のない分野は意識
して思考停止
✓ あえて調べず「こういうもんだ」と
割り切る
100/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 102. 興味のある分野
✓ 専門用語の意味を調べる
✓ 仕組みを調べる
✓ 設計思想を調べる
101/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 107. 無意識に思考停止
✓ 興味のある分野だが調べない
✓ 思考停止に気づいていない
✓ 蓄えた知識のみ
106/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3
- 108. 死んだ
プログラマ
http://www.flickr.com/photos/bhagathk/3847024461/
- 112. 大切なのは疑問を持ち
続けること。
[cited from `アルベルト・アインシュタイン']
111/111
G1GCへ伸びていた「いばらの道」 Powered by Rabbit 0.9.3