Rubyによる本気の            GC                                      Serious GC with Ruby                                        ...
提供Rubyによる本気のGC - Serious GC with Ruby        Powered by Rabbit 2.0.5
うなぎの件       <URL:https://www.wantedly.com/projects/478>Rubyによる本気のGC - Serious GC with Ruby                  Powered by Rab...
自己紹介      ✓ 中村成洋/@nari3/nari/authorNari      ✓ CRubyのコミッタ      ✓ GCメンテナ&デストロイヤRubyによる本気のGC - Serious GC with Ruby         ...
GCとは(ry
GoogleTrendでみるGC
休日の検索数が さがっている
つまり      ✓ 平日             ✓ お仕事でGCを作るリア充             ✓ もしくはGCバグに悩まされる一般ピ               ープルが多い      ✓ 休日             ✓ 趣味でG...
GCはまだまだ愛されてい     ない
ちなみに:年末も異常に検索         されている                               リアルGCの恐れ..Rubyによる本気のGC - Serious GC with Ruby         Powered by...
とにかく  GCをもっとよく知りましょう!
徹底解剖G1GC 実装編正式版公開!!(無料配布)
この場を借りて本書のスポンサーのみなさまあり がとうございます    m(_ _)m
Ruby2.0 の GC update
偉い人がいってた
「全力で潰す」  http://www.flickr.com/photos/recompile_net/5952564080
Matz mashes something,so we mash something.
僕もなにか潰したい!
REE is dead       <URL:http://blog.phusion.nl/2012/02/21/ruby-enterprise-       edition-1-8-7-2012-02-released-end-of-life...
諸君らが愛したREEは死     んだ。    なぜだ!
BitmapMarking      ✓ fork使うようなプログラムで嬉        しいはず      ✓ Passengerなどで恩恵があるらし        いRubyによる本気のGC - Serious GC with Ruby  ...
REEつぶしたった    (^o^)
最近の悩み:    Kijiはどうやって潰そうか…
本題
RubyでGCを書くという      お話
動機(1)
RubyKaigi Driven  Development
過去のRubyKaigiの発表...      ✓ LazySweepGC - RubyKaigi2008      ✓ LonglifeGC - 2009      ✓ LazySweepGC - 2010      ✓ ParallelMa...
全部Cの話やないか!
Rubyの話、させてください
動機(2)
結論:C死ね。                             [cited from `卜部昌平のあまりreblogしないtumblr]Rubyによる本気のGC - Serious GC with Ruby              ...
ほんとどのGCはC or C++で書かれている       しなぁ…
な ぜCで書く必 要が あ                       る?ないはずだよ。ち                       ゃんと調査すればJava                       とかC#とか、ひょっと       ...
RubyでGC書いてみよう!
素直に考えると...
これはあまり意味がない      ✓ 下にいるGCの性能に影響をう        ける             ✓ 性能評価しづらい             ✓ 下のGCが遅いと、上のGCも遅くな               るRubyによる本...
これはあまり意味がない      ✓ 言語処理系にGCは1つあればい        いですよ感             ✓ 無駄に話が複雑になっているような               気がするRubyによる本気のGC - Serious GC...
もっと違うアプローチを   考えよう!
Meta-circular evaluator
An evaluator that is                       written in the same                       language      that    it             ...
簡単な例:LISPでLISP書いたった
他の具体例を調べてみる
もう少し詳しく      ✓ RPython(Restricted Python)で実        装             ✓ Pythonの言語サブセット      ✓ RPython -> C/LLVM/Java..Rubyによる本気...
変換イメージ
重要なポイント
GCもRPythonで書 かれている
疑問
GC動作中のGCはどうするの         か?      ✓ GC動作中にGCが起きて、その        動作中にGCが起きて…             ✓ GCの無限ループ...?Rubyによる本気のGC - Serious GC wi...
RPython      ✓ GC中はGC対象のオブジェクト        を作らないように気を付ける        (たぶん)             ✓ mallocなどで直接メモリを切り出す                  ✓ libf...
GC中にGCが走ることは     ない
仕組み(ry
ただし      ✓ GCをRubyで書く仕組みがない             ✓ 今考えればRubiniusをいじったほうが               よかったかも…?                  ✓ まぁいいか...Rubyによる本...
JikesRVM      ✓ RVM(Research Virtual Machine) = 研究用VM             ✓ GC,VM周りでたくさん論文が書かれ               ているRubyによる本気のGC - Ser...
JikesRVM      ✓ GCもJavaで書かれている      ✓ プロジェクト委員の一人が        Rechard Jones(RJGC著者)Rubyによる本気のGC - Serious GC with Ruby        ...
直接オブジェクトファイルを        吐くRubyによる本気のGC - Serious GC with Ruby   Powered by Rabbit 2.0.5
GCもJavaで書ける      ✓ 一緒にオブジェクトファイルに        変換される      ✓ GC中はGCが発生しない             ✓ PyPyと同じ理由Rubyによる本気のGC - Serious GC with R...
JikesRVMの功績は「GCをJavaでかける」    だけではない
GC部分がMMTkという別部品に切り離されてい     る
MMTk(Memory Management          Tool kit)      ✓ GCを11個保有      ✓ ツールキットなのでGC用の便        利メソッドが沢山ある             ✓ GCづくりが簡単Ru...
MMTk(Memory Management          Tool kit)      ✓ VMからメモリ管理を別の部品        として切り離せる             ✓ VMは取り替え可能                  ✓...
やたー!GC書き放題!
Javaで…
Rubyで書きたい…ッ!!
われわれにはJRubyがあ  るじゃないか
この部分をライブラリ化
Regicide
Regicde = 国王殺しRubyによる本気のGC - Serious GC with Ruby    Powered by Rabbit 2.0.5
サンプルコード
オブジェクトの定義            class FixnumValue < Regicide::Mutator::ObjectValue             # ...            end     Regicide::Mut...
オブジェクト生成            class FixnumValue < Regicide::Mutator::ObjectValue             # Fixnumをフィールドに持つ             # オブジェクトを...
from_i           # メモリ割り当て           ptr = mutator.alloc(0, 1, mutator.current_stack.pc)           # オブジェクト生成           v ...
M&S GCは4行で書ける            class MSConstraints < org.mmtk.plan.marksweep.MSConstraints; end            class MS < org.mmtk.p...
動作するサンプル           ↓<URL:https://github.com/authorNari/regicide/tree/master/                       sample>
苦労話
Java+JRuby      ✓ JRuby側からJavaを使うのは簡        単             ✓ メソッド呼び出し             ✓ 継承とかとかRubyによる本気のGC - Serious GC with Ru...
Java+JRuby      ✓ Java側からJRubyを使うのは難        しい             ✓ けっこう意外だったRubyによる本気のGC - Serious GC with Ruby            Power...
どいうことか?
どうやるの(?_?)
RedBridge
RedBridge      ✓ @yokoletさん作(感謝!)      ✓ Javaの中でJRubyの実行環境        (コンテナ)を作る             ✓ コンテナにソースコードぶちこんだ               り...
イメージ             public static void foo(void) {              // JRuby実行環境作って              ScriptingContainer sc =         ...
Regicideではこの辺の技術を なんやかんや  使ってます
Regicideの悪いところ
VM作るのめんどい
けっきょくVMは書かないと        いけない      ✓ GCを評価するためにはある程        度ちゃんとしたものが必要             ✓ でもVMとか興味ないしさぁ…      ✓ LISPすら作るのが億劫      ...
JVMのGCの影響を受ける
ふつうにJavaのコードとして動かす感          じ
JVMのGCに引っ張られる      ✓ 性能が引っ張られる             ✓ GC停止も不可能だしきちんと性能評               価しづらそう                  ✓ 論文とか書きづらそうRubyによる本気...
変換ができればいいのに…      ✓ JikesRVMのブートストラップ        部分にJRubyを突っ込む             ✓ うまく動かなかった                  ✓ JRubyがJikesRVMの秘孔を付い...
Regicideの良いところ
VMが自分で書ける
言語処理系が自前で書ける      ✓ GCにすごく優しい処理系とか        書ける      ✓ 言語処理系ひっくるめて検討で        きるRubyによる本気のGC - Serious GC with Ruby   Powered...
おいしいところは全部Ruby         で書ける      ✓ VM, GC, 全部Rubyで書ける      ✓ Cみたいに阿鼻叫喚しなくてい        い(かもしれない)      ✓ 生産性が100倍(らしい)Rubyによる本気...
勝手に処理系が速くなる感      ✓ JVM速くなる = Regicide速くな        る             ✓ WIN-WIN(笑)                  ✓ Cでも一緒か…Rubyによる本気のGC - Serio...
ほかのGCと比較可能      ✓ 十数個のGCと性能比較ができ        る      ✓ 起動時のオプションを少しいじ        るだけでOK             ✓ 論文とかかけるかもしれない!Rubyによる本気のGC - S...
githubにあげています  authorNari/regicide
今後の展開
作ってみて気づいたこと      ✓ GC部分は外っ面がRubyなだけ        で実はCとあまり変わらない感        じ…             ✓ これならCで書いても一緒なのでは…Rubyによる本気のGC - Serious ...
作ってみて気づいたこと      ✓ 実はGC実装に特化したミニ言        語が欲しいだけなのか…?             ✓ 今後はそちら方面で攻めてみたいRubyによる本気のGC - Serious GC with Ruby   P...
まとめ
まとめ      ✓ やっぱりRubyの話できなかっ        た      ✓ C死ねと思って作ったRegicide        がすでに死にそうRubyによる本気のGC - Serious GC with Ruby         P...
ご清聴 ありがとうございました
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Rubyによる本気のGC
Upcoming SlideShare
Loading in …5
×

Rubyによる本気のGC

3,147 views

Published on

なぜあなたはCでGCを書くのですか? 本当はRubyで書きたいですよね? この
発表では(J)RubyでGCを書く方法を示します。ToyのGCじゃなくて、本気のGCを
Rubyで書けます!(の予定)

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,147
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
6
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Rubyによる本気のGC

  1. 1. Rubyによる本気の GC Serious GC with Ruby @nari3 #sprk2012 2012/9/15 ネットワーク応用通信研究所Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  2. 2. 提供Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  3. 3. うなぎの件 <URL:https://www.wantedly.com/projects/478>Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  4. 4. 自己紹介 ✓ 中村成洋/@nari3/nari/authorNari ✓ CRubyのコミッタ ✓ GCメンテナ&デストロイヤRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  5. 5. GCとは(ry
  6. 6. GoogleTrendでみるGC
  7. 7. 休日の検索数が さがっている
  8. 8. つまり ✓ 平日 ✓ お仕事でGCを作るリア充 ✓ もしくはGCバグに悩まされる一般ピ ープルが多い ✓ 休日 ✓ 趣味でGCをいじる人が少ないRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  9. 9. GCはまだまだ愛されてい ない
  10. 10. ちなみに:年末も異常に検索 されている リアルGCの恐れ..Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  11. 11. とにかく GCをもっとよく知りましょう!
  12. 12. 徹底解剖G1GC 実装編正式版公開!!(無料配布)
  13. 13. この場を借りて本書のスポンサーのみなさまあり がとうございます m(_ _)m
  14. 14. Ruby2.0 の GC update
  15. 15. 偉い人がいってた
  16. 16. 「全力で潰す」 http://www.flickr.com/photos/recompile_net/5952564080
  17. 17. Matz mashes something,so we mash something.
  18. 18. 僕もなにか潰したい!
  19. 19. REE is dead <URL:http://blog.phusion.nl/2012/02/21/ruby-enterprise- edition-1-8-7-2012-02-released-end-of-life-imminent/>Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  20. 20. 諸君らが愛したREEは死 んだ。 なぜだ!
  21. 21. BitmapMarking ✓ fork使うようなプログラムで嬉 しいはず ✓ Passengerなどで恩恵があるらし いRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  22. 22. REEつぶしたった (^o^)
  23. 23. 最近の悩み: Kijiはどうやって潰そうか…
  24. 24. 本題
  25. 25. RubyでGCを書くという お話
  26. 26. 動機(1)
  27. 27. RubyKaigi Driven Development
  28. 28. 過去のRubyKaigiの発表... ✓ LazySweepGC - RubyKaigi2008 ✓ LonglifeGC - 2009 ✓ LazySweepGC - 2010 ✓ ParallelMarkingGC - 2011Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  29. 29. 全部Cの話やないか!
  30. 30. Rubyの話、させてください
  31. 31. 動機(2)
  32. 32. 結論:C死ね。 [cited from `卜部昌平のあまりreblogしないtumblr]Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  33. 33. ほんとどのGCはC or C++で書かれている しなぁ…
  34. 34. な ぜCで書く必 要が あ る?ないはずだよ。ち ゃんと調査すればJava とかC#とか、ひょっと したらOCamlやScalaで でも用は足りる場合が ほとんどなんだ。 [cited from `卜部昌平のあまりreblogしないtumblr]Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  35. 35. RubyでGC書いてみよう!
  36. 36. 素直に考えると...
  37. 37. これはあまり意味がない ✓ 下にいるGCの性能に影響をう ける ✓ 性能評価しづらい ✓ 下のGCが遅いと、上のGCも遅くな るRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  38. 38. これはあまり意味がない ✓ 言語処理系にGCは1つあればい いですよ感 ✓ 無駄に話が複雑になっているような 気がするRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  39. 39. もっと違うアプローチを 考えよう!
  40. 40. Meta-circular evaluator
  41. 41. An evaluator that is written in the same language that it evaluates is said to be metacircular. [cited from `4.1 The Metacircular Evaluator - SICP]Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  42. 42. 簡単な例:LISPでLISP書いたった
  43. 43. 他の具体例を調べてみる
  44. 44. もう少し詳しく ✓ RPython(Restricted Python)で実 装 ✓ Pythonの言語サブセット ✓ RPython -> C/LLVM/Java..Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  45. 45. 変換イメージ
  46. 46. 重要なポイント
  47. 47. GCもRPythonで書 かれている
  48. 48. 疑問
  49. 49. GC動作中のGCはどうするの か? ✓ GC動作中にGCが起きて、その 動作中にGCが起きて… ✓ GCの無限ループ...?Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  50. 50. RPython ✓ GC中はGC対象のオブジェクト を作らないように気を付ける (たぶん) ✓ mallocなどで直接メモリを切り出す ✓ libffiを利用Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  51. 51. GC中にGCが走ることは ない
  52. 52. 仕組み(ry
  53. 53. ただし ✓ GCをRubyで書く仕組みがない ✓ 今考えればRubiniusをいじったほうが よかったかも…? ✓ まぁいいか...Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  54. 54. JikesRVM ✓ RVM(Research Virtual Machine) = 研究用VM ✓ GC,VM周りでたくさん論文が書かれ ているRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  55. 55. JikesRVM ✓ GCもJavaで書かれている ✓ プロジェクト委員の一人が Rechard Jones(RJGC著者)Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  56. 56. 直接オブジェクトファイルを 吐くRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  57. 57. GCもJavaで書ける ✓ 一緒にオブジェクトファイルに 変換される ✓ GC中はGCが発生しない ✓ PyPyと同じ理由Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  58. 58. JikesRVMの功績は「GCをJavaでかける」 だけではない
  59. 59. GC部分がMMTkという別部品に切り離されてい る
  60. 60. MMTk(Memory Management Tool kit) ✓ GCを11個保有 ✓ ツールキットなのでGC用の便 利メソッドが沢山ある ✓ GCづくりが簡単Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  61. 61. MMTk(Memory Management Tool kit) ✓ VMからメモリ管理を別の部品 として切り離せる ✓ VMは取り替え可能 ✓ JikesRVM ✓ HarnessRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  62. 62. やたー!GC書き放題!
  63. 63. Javaで…
  64. 64. Rubyで書きたい…ッ!!
  65. 65. われわれにはJRubyがあ るじゃないか
  66. 66. この部分をライブラリ化
  67. 67. Regicide
  68. 68. Regicde = 国王殺しRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  69. 69. サンプルコード
  70. 70. オブジェクトの定義 class FixnumValue < Regicide::Mutator::ObjectValue # ... end Regicide::Mutator::ObjectValueを継承Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  71. 71. オブジェクト生成 class FixnumValue < Regicide::Mutator::ObjectValue # Fixnumをフィールドに持つ # オブジェクトを割り当てるメソッド def self.from_i(mutator, i) ... end endRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  72. 72. from_i # メモリ割り当て ptr = mutator.alloc(0, 1, mutator.current_stack.pc) # オブジェクト生成 v = self.new(ptr) # Fixnumを格納 mutator.store_data_field(v.object_value, 0, org.vmmagic.unboxed.Word.from_long(i)) return vRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  73. 73. M&S GCは4行で書ける class MSConstraints < org.mmtk.plan.marksweep.MSConstraints; end class MS < org.mmtk.plan.marksweep.MS; end class MSCollector < org.mmtk.plan.marksweep.MSCollector; end class MSMutator < org.mmtk.plan.marksweep.MSMutator; endRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  74. 74. 動作するサンプル ↓<URL:https://github.com/authorNari/regicide/tree/master/ sample>
  75. 75. 苦労話
  76. 76. Java+JRuby ✓ JRuby側からJavaを使うのは簡 単 ✓ メソッド呼び出し ✓ 継承とかとかRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  77. 77. Java+JRuby ✓ Java側からJRubyを使うのは難 しい ✓ けっこう意外だったRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  78. 78. どいうことか?
  79. 79. どうやるの(?_?)
  80. 80. RedBridge
  81. 81. RedBridge ✓ @yokoletさん作(感謝!) ✓ Javaの中でJRubyの実行環境 (コンテナ)を作る ✓ コンテナにソースコードぶちこんだ り、Rubyコード片を評価できるRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  82. 82. イメージ public static void foo(void) { // JRuby実行環境作って ScriptingContainer sc = new ScriptingContainer(); // さっきのJRubyFooクラスを読み込み Object jrubyFooClass = sc.runScriptlet(PathType.ABSOLUTE, "foo.rb"); // JRubyFoo.fooを呼び出す sc.callMethod(fooClass, "foo", Object.class); }Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  83. 83. Regicideではこの辺の技術を なんやかんや 使ってます
  84. 84. Regicideの悪いところ
  85. 85. VM作るのめんどい
  86. 86. けっきょくVMは書かないと いけない ✓ GCを評価するためにはある程 度ちゃんとしたものが必要 ✓ でもVMとか興味ないしさぁ… ✓ LISPすら作るのが億劫 ✓ 飽きてきたRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  87. 87. JVMのGCの影響を受ける
  88. 88. ふつうにJavaのコードとして動かす感 じ
  89. 89. JVMのGCに引っ張られる ✓ 性能が引っ張られる ✓ GC停止も不可能だしきちんと性能評 価しづらそう ✓ 論文とか書きづらそうRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  90. 90. 変換ができればいいのに… ✓ JikesRVMのブートストラップ 部分にJRubyを突っ込む ✓ うまく動かなかった ✓ JRubyがJikesRVMの秘孔を付いているらしい ✓ JikesRVMがまだ未熟Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  91. 91. Regicideの良いところ
  92. 92. VMが自分で書ける
  93. 93. 言語処理系が自前で書ける ✓ GCにすごく優しい処理系とか 書ける ✓ 言語処理系ひっくるめて検討で きるRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  94. 94. おいしいところは全部Ruby で書ける ✓ VM, GC, 全部Rubyで書ける ✓ Cみたいに阿鼻叫喚しなくてい い(かもしれない) ✓ 生産性が100倍(らしい)Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  95. 95. 勝手に処理系が速くなる感 ✓ JVM速くなる = Regicide速くな る ✓ WIN-WIN(笑) ✓ Cでも一緒か…Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  96. 96. ほかのGCと比較可能 ✓ 十数個のGCと性能比較ができ る ✓ 起動時のオプションを少しいじ るだけでOK ✓ 論文とかかけるかもしれない!Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  97. 97. githubにあげています authorNari/regicide
  98. 98. 今後の展開
  99. 99. 作ってみて気づいたこと ✓ GC部分は外っ面がRubyなだけ で実はCとあまり変わらない感 じ… ✓ これならCで書いても一緒なのでは…Rubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  100. 100. 作ってみて気づいたこと ✓ 実はGC実装に特化したミニ言 語が欲しいだけなのか…? ✓ 今後はそちら方面で攻めてみたいRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  101. 101. まとめ
  102. 102. まとめ ✓ やっぱりRubyの話できなかっ た ✓ C死ねと思って作ったRegicide がすでに死にそうRubyによる本気のGC - Serious GC with Ruby Powered by Rabbit 2.0.5
  103. 103. ご清聴 ありがとうございました

×