SlideShare a Scribd company logo
1 of 149
Download to read offline
RubyのGC改善による
               私のエコライフ
                          レジ袋は結構ですよ(2009夏)

                                nari
                          ネットワーク応用通信研究所


Powered by Rabbit 0.6.1
先に
お詫び
いまからCRuby内部の
 大変マニアックな
  話をします
しかも30分も
m(_ _)m
今日話す内容
 CRubyのGCを改善しましたというお話し
  GC = ゲームキューブ?
  今日の話にはついていけません




                     5/148
今日話す内容
 GC改善 = ゴミ処理機性能アップ
 なんとなくエコっぽい
  流行ってるし
  なんとなくタイトルに




                     6/148
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   7/148
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   8/148
自己紹介
自己紹介
 nariと申します
  id:authorNari(はてな)
  nari3(twitter)
  量産型中村




                       10/148
自己紹介
 ネットワーク応用通信研究所に所属
  島根の方から来ました

 元アイス工場勤務,現NaCl勤務
 注:NaClにアイス工場支社はない
 「RailsのWebアプリを受託開発」などなど
  お仕事募集中

                      11/148
自己紹介
 無類のGC好き
 「CRubyGCについて考えたりするコミッタ」




                      12/148
宣伝(1)
絶対復習というサービス
 Railsで作ってます
 復習を促進するサービス
 復讐は促進しません><
 詳細は割愛




               15/148
続きはWEBで




          16/148
宣伝(2)
GCは作らない
巻末
     GCはこれほど知られているのに
     日本語でGCについて執筆された本がない




                           20/148
数少ない
GCファンに朗報!!
なんとGC本
 執筆中
内容
 アルゴリズムの話
 実装の話
  Pythonの..
  androidの..
  v8の..
  rub..niusの..

 監修は超大物
                 23/148
問題
 誰が買うの?
 今のところ笹田研のささだ先生が有力候補




                  24/148
宣伝はこれくらいで..
恒例のアンケート
GCに興味ある方?
    ノシ
gc.cを読んだ事がある
      方?
      ノシ
GC本が出たらかうよ!っ
    て人?
     ノシ
予想...5人
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   31/148
CRubyのGC改善とエコ
GCとエコの密着した関
連性をお話ししましょう
GCとエコの関連性
 CRubyGCを改善する
 世界の RubyHacker のPCの熱量が1%下
 がるとする
 Rubyに費やす1ヶ月の電気使用量100円
  1円分お得 => 1円分エコ




                       34/148
GCとエコの関連性
 世界にはRubyプログラマ何人くらいいるだ
 ろう?
 まぁ,100万人くらいとしよう
 100万人 X 2円 => 月間200万円エコ
 年間2400万円エコ



                           35/148
ルピィに換算
 ルピィに換算(インドの通貨)
 3円 => 1ルピィ
 年間約800万ルピィ




                  36/148
GCを改善すれば
年間約800万ルピィ分の
 エコができますね!
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   38/148
現在のCRubyGC概要
現在のCRubyのGC
マークスイープ方式
CRubyのヒープ構造




malloc にて 16Kバイト のメモリ領域を確保
 ヒープスロット


                        42/148
CRubyのヒープ構造




オブジェクトの配列を作成
オブジェクトサイズの20バイトでアラインメント
オブジェクトはそれぞれフリーリストでつながっ
                    43/148
ている
オブジェクトの割り当て
1. 処理系から割り当て要求
2. フリーリストからオブジェクトを一つ取り出し
3. 取り出したオブジェクトを初期化




                     44/148
マーク処理
1. フリーリストが尽きるとマーク処理開始
2. プログラムから見える範囲のオブジェクトを
   再帰的にマーク
3. マーク処理は各オブジェクト内フラグのマー
   クビットを1にする
4. 全てのルートに対してマークを終えるとマー
   ク処理終了

                        45/148
スイープ処理
1. ヒープ内のすべてのオブジェクトを走査
2. マークされているオブジェクトはそのマーク
   を消す
3. マークされてないオブジェクトはゴミと見な
   し,スイープ処理を行う
4. ヒープ内を全て走査し終わるとスイープ処
   理終了

                     46/148
シンプルな
マークスイープの実装
マーク(印付け)して
スイープ(掃除)する
ここは雰囲気だけ
 つかんで貰えば
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   50/148
問題点 その1
CopyOnWrite
CopyOnWrite
  多くのLinux環境では子プロセス作成時
  (fork)のメモリは共有領域に置かれる
  書き込みがあった際に,それぞれのプロセス
  の私有領域にコピーされる
  (注)Rubyの機能ではない




                     53/148
子プロセス生成時のメモリ領
域




           54/148
実際にはコピーしない




読み込みをする時はそれでも充分
                  55/148
書き込み(write)が発生




                 56/148
そのタイミングで私有領域に
Copy




           57/148
Writeの時に
Copyする
CopyOnWrite
実はCRubyGCと
CopyOnWriteは相性が
      悪い
無駄なコピーの発生
 CRubyGCではマークの際に生存している
 全てのオブジェクトに対して印付けする
  つまりWriteする

 forkしたプロセスの場合,CopyOnWriteが
 効いて無駄なコピーが..




                        62/148
無駄なコピーの発生




            63/148
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   64/148
エコ活動 その1
BitmapMarkingGC
  オブジェクトの印付け用bitのみを別の領域
  に移す
   これをビットマップと呼ぶ

  オブジェクトの生存,死亡はビットマップにて
  管理
  マーク時に直接オブジェクトを操作する事が
  なくなる
  無駄なコピーが発生しにくい
                     66/148
Bitmap領域を確保




Bitmapは非常に小さいサイズ
                   67/148
そこに印付けする




Copyが発生しない
             68/148
BitmapMarkingGC導入前
例
 RubyEnterpriseEditionというRuby実装
 (REE)
   Hongli Laiさん達によって作成
   REEと呼ばれる




                             69/148
REEとは?
 Apache+passenger 用のRuby処理系
   ruby1.8.6ベース

 Apache が fork() してリクエスト捌いてる
 GCをBitmapMarkingGC




                          70/148
REEでの改善
 RubyOnRails+REE+Apacheで動作させた
   リクエスト毎秒 22% が高速化
   総メモリ使用量が 31% 削減した




                          71/148
じゃあ,これを本家に取り
  込んじゃおうよ!
ちょっと問題が…
ビットマップ位置探索



それぞれのヒープスロットにビットマップ領域がある



                     74/148
ビットマップ位置探索




             75/148
ビットマップ位置探索



オブジェクトのアドレス->Rubyのヒープスロット



                       76/148
ビットマップ位置の探索をど
うしよう?
 オブジェクトのアドレスしか渡ってこない
 アドレスから紐付くヒープスロットを見つけな
 ければならない.




                       77/148
単純に考える




オブジェクトにスロットを指すポインタをもうける


                    78/148
駄目,絶対
 ヒープ領域が大きくなりメモリ消費量が大き
 くなってしまう
 せっかく1.9でオブジェクトをダイエットした
 のに..
 色んな人から怒られる




                     79/148
REEはどうするか
線形探索




ちょ,線形探索ですか><


               81/148
問題点:遅い
 ビットマップ位置探索に線形探索を使用して
 いる
 forkしないプログラムの場合,GCがビット
 マップマーキング処理の分遅くなる




                      82/148
REEは1.8系なのでセーフ



1.8系のRubyヒープスロットは1.8倍で大きくな
る
ヒープスロットはまぁ増えても20個とかそのくら
い
                      83/148
1.9系ではアウト



 1.9系はRubyヒープスロットのサイズが固定



                      84/148
1.9系ではアウト
 Rubyヒープスロット自体を増やす
  1.8系で10個 => 1.9系だと357個

 これだと線形探索はつらくなってくる
 1.9に適した探索法を見つける必要がある
 そのまま取り込めないね…


                           85/148
アイデア
アライメントを利用すれば
   いいじゃないか
基本的なアイデア


ヒープスロットサイズは16KB
 16KB = 2の14乗
 0b100000000000000


                     88/148
基本的なアイデア



下位14bitが全て0のアドレスがヒープスロット内の
どこかに存在するはず


                      89/148
基本的なアイデア




           90/148
ビットマップ位置探索


アドレスが 0b10101010111010000




                            91/148
ビットマップ位置探索



マスクする
 0b10101010111010000 &
 0b11100000000000000
 0b101000000000000000
                         92/148
ビットマップ位置探索



ビットマップ位置が探索可能




                93/148
問題解決
 O(n)からO(1)へ
 大分早くなった




               94/148
ただしやっぱり少しだけ
    遅い
ベンチマーク結果




skk.rb ベンチマーク(自作)
                    96/148
詳細は論文で!




       http://www.narihiro.info/


まつもとさんと連名!                         97/148
このパッチの行方
 一応まつもとさんのパッチ袋へ
 そのまま永眠かな..
 fork()なんて..別にいいし..




                      98/148
(´・ω・)...
さぁ,気を取り直して
他の問題点を探そうじゃ
    ないか!
ちなみにAndroid
 DalvikVM
 これと全く同じ問題がある
 マルチタスク => いっぱい fork()
 BitmapMarkingが必要になる




                         101/148
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   102/148
問題点 その2
長寿命
オブジェクト問題
RubyOnRailsの
Rubyヒープ使い方を
   調査してみた
結果




     106/148
構文木オブジェクトが
 半数を占めていた
構文木オブジェクトって?
何かがおかしい…
 YARV命令列にしたら構文木オブジェクトは
 いらない
 自然にGCされるはず
 ずっと生きているのは何でだろう?




                    113/148
さらに調査
以下の種類の構文木オブジェクトが多かった
1. NODE_WHILE
2. NODE_METHOD
3. NODE_FBODY
4. NODE_CFUNC


                  114/148
メソッドで使われる構文木
 NODE_METHOD,NODE_FBODY,NODE
 _CFUNC
 これらはメソッド生成時に使用&保持
   長寿命




                        115/148
NODE_WHILE
 YARV内のインラインキャッシュ(最適化)に
 使用
   長寿命




                    116/148
長寿命なオブジェクトが半数
を占める
 半分は無駄なマークになる
 スイープはあんまり関係ない




                 117/148
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   118/148
エコ活動 その2
まず,まつもとさんに相談
 昔は構文木オブジェクトはGCの対象じゃな
 かった
 どこかで面倒になってGCの対象にしちゃっ
 た
 構文木の部分だけ世代別にしたらどう?




                   120/148
おぉ!なるほど!
長寿命GC
(勝手に命名)
長寿命GC




        123/148
長寿命GC




        124/148
メリット
 マークするオブジェクトが減る
 ベンチマークが遅くならない
  make benchmark




                   125/148
デメリット
 ベンチマークがぐんと早くはならない
  make benchmark
  ちょっぴり早い




                     126/148
ライトバリア問題もクリア
 構文木オブジェクトはRubyレベルから参照
 出来ない
 ライトバリアを入れるのがコア内部で完結
  Cの拡張ライブラリとか考えなくていい




                       127/148
効果のあったベンチマーク


ao-bench
id:hogelogさん,id:miura1729さんに測ってい
ただきました


                          128/148
パッチのその後
 trunkに無事取り込まれた
 色々改良してきたけど初採用
 感激(T.T)




                  131/148
が,,
反応
 この辺の インラインキャッシュ やら ノードとかその辺
 は,GC 対象外領域にしてしまおうと思っています.


by ささださん




                          133/148
(´・ω・)...
Rejectされる日は近い
話の続き
昨日の懇親会
     この辺はGC対象外にしたよ!
     あれはバグを生むし,とっちゃおうよ


by ささださん




                         137/148
(´・ω・)...
早めにReject
 しますね!
カバレッジも100%に!
アジェンダ
1. 自己紹介
2. CRubyのGC改善とエコ
3. 現在のCRubyGC概要
4. 問題点
5. エコ活動
6. CRubyGCの今後
                   141/148
CRubyGCの今後
個人的にやりたい事(1)
 色々な処理系のGCいいとこ取り
  執筆の関係で色々なGCを読んでいるので
  CRubyに使えそうなのはメモってる




                        143/148
個人的にやりたい事(2)
 BoehmGCを適用してみる運動
  一応動くようにした
  すごく遅くなった
  ちょっとチューニングする必要があるかな...




                           144/148
まとめ
 エコ活動しました
 なんやかんやで何も成果がありませんでした
 先生の次回作にご期待ください




                  145/148
提供
(株)ネットワーク
応用通信研究所
ご静聴
ありがとうございました
質疑応答
 タイム

More Related Content

What's hot

Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについてmametter
 
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよSerf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよMasahito Zembutsu
 
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2Hiroshi Watanabe
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javaYuji Kubota
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjugYuji Kubota
 
Re: ご注文は自動化ですか?[2]
Re: ご注文は自動化ですか?[2]Re: ご注文は自動化ですか?[2]
Re: ご注文は自動化ですか?[2]Masahito Zembutsu
 
今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理Masahito Zembutsu
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM LoggingYuji Kubota
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしようYasuhiro Yoshimura
 
Unity勉強会 ひとり親方
Unity勉強会 ひとり親方Unity勉強会 ひとり親方
Unity勉強会 ひとり親方マスタッシュ
 
TFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPUTFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPUYumaMatsuoka
 
STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜
STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜
STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜Masahiko Kimoto
 
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ckIndy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ckUehara Junji
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ陽平 山口
 
Kinect Hacks for Dummies (Japanese / 日本語)
Kinect Hacks for Dummies (Japanese / 日本語)Kinect Hacks for Dummies (Japanese / 日本語)
Kinect Hacks for Dummies (Japanese / 日本語)Tomoto Washio
 

What's hot (20)

mrubyのJIT
mrubyのJITmrubyのJIT
mrubyのJIT
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについて
 
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよSerf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
 
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(8) 高速化チューニングとその関連技術2
 
FabricとRailsと私
FabricとRailsと私FabricとRailsと私
FabricとRailsと私
 
UE4におけるLoadingとGCのProfilingと最適化手法
UE4におけるLoadingとGCのProfilingと最適化手法UE4におけるLoadingとGCのProfilingと最適化手法
UE4におけるLoadingとGCのProfilingと最適化手法
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
Java 9 and Future #jjug
Java 9 and Future #jjugJava 9 and Future #jjug
Java 9 and Future #jjug
 
Re: ご注文は自動化ですか?[2]
Re: ご注文は自動化ですか?[2]Re: ご注文は自動化ですか?[2]
Re: ご注文は自動化ですか?[2]
 
今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理今日から業務で使える17の運用系Linuxツール、そして円環の理
今日から業務で使える17の運用系Linuxツール、そして円環の理
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
 
Unity勉強会 ひとり親方
Unity勉強会 ひとり親方Unity勉強会 ひとり親方
Unity勉強会 ひとり親方
 
TFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPUTFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPU
 
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
 
STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜
STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜
STPとその仲間たち 〜 STP, RSTP, MSTPの概要 〜
 
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ckIndy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
 
Kinect Hacks for Dummies (Japanese / 日本語)
Kinect Hacks for Dummies (Japanese / 日本語)Kinect Hacks for Dummies (Japanese / 日本語)
Kinect Hacks for Dummies (Japanese / 日本語)
 

Viewers also liked

ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_jaChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_jaMasahiro NAKAYAMA
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用についてYuuki Namikawa
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編Kazuya Numata
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニングii012014
 
Tech valley #5 株式会社スピカご紹介
Tech valley #5 株式会社スピカご紹介Tech valley #5 株式会社スピカご紹介
Tech valley #5 株式会社スピカご紹介勲 國府田
 
GC本をGCしないための100の方法
GC本をGCしないための100の方法GC本をGCしないための100の方法
GC本をGCしないための100の方法Narihiro Nakamura
 
中小企業セキュリティ指針
中小企業セキュリティ指針中小企業セキュリティ指針
中小企業セキュリティ指針Shunichi Arai
 
GCについて
GCについてGCについて
GCについてcactusman
 

Viewers also liked (10)

ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_jaChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
ChefとCapistranoの境界線 (Chef Casual Talks Vol.1) #eytokyo #opschef_ja
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用について
 
Passenger
PassengerPassenger
Passenger
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニング
 
Tech valley #5 株式会社スピカご紹介
Tech valley #5 株式会社スピカご紹介Tech valley #5 株式会社スピカご紹介
Tech valley #5 株式会社スピカご紹介
 
GC本をGCしないための100の方法
GC本をGCしないための100の方法GC本をGCしないための100の方法
GC本をGCしないための100の方法
 
中小企業セキュリティ指針
中小企業セキュリティ指針中小企業セキュリティ指針
中小企業セキュリティ指針
 
GCが止まらない
GCが止まらないGCが止まらない
GCが止まらない
 
GCについて
GCについてGCについて
GCについて
 

Similar to RubyのGC改善による私のエコライフ

ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみたkinneko
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理Norishige Fukushima
 
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価Toshiaki Hishinuma
 
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?ogawatti
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...エピック・ゲームズ・ジャパン Epic Games Japan
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会Kimikazu Kato
 
RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2Kuniaki Igarashi
 
Ruby開発が教えてくれたこと
Ruby開発が教えてくれたことRuby開発が教えてくれたこと
Ruby開発が教えてくれたことyukihiro_matz
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾外道 父
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書くmametter
 
基幹業務もHadoop(EMR)で!!のその後
基幹業務もHadoop(EMR)で!!のその後基幹業務もHadoop(EMR)で!!のその後
基幹業務もHadoop(EMR)で!!のその後Keigo Suda
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編Daiyu Hatakeyama
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence Learning[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence LearningDeep Learning JP
 
AWSとGPUインスタンスのご紹介
AWSとGPUインスタンスのご紹介AWSとGPUインスタンスのご紹介
AWSとGPUインスタンスのご紹介Yasuhiro Matsuo
 

Similar to RubyのGC改善による私のエコライフ (20)

ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみた
 
CMSI計算科学技術特論A (2015) 第9回
CMSI計算科学技術特論A (2015) 第9回CMSI計算科学技術特論A (2015) 第9回
CMSI計算科学技術特論A (2015) 第9回
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価PEZY-SC2上における倍々精度Rgemmの実装と評価
PEZY-SC2上における倍々精度Rgemmの実装と評価
 
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?
 
CRubyGCの並列世界
CRubyGCの並列世界CRubyGCの並列世界
CRubyGCの並列世界
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
Rubyによる本気のGC
Rubyによる本気のGCRubyによる本気のGC
Rubyによる本気のGC
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
 
RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2
 
Ruby開発が教えてくれたこと
Ruby開発が教えてくれたことRuby開発が教えてくれたこと
Ruby開発が教えてくれたこと
 
Let's make your CDN with RUBY
Let's make your CDN with RUBYLet's make your CDN with RUBY
Let's make your CDN with RUBY
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
 
基幹業務もHadoop(EMR)で!!のその後
基幹業務もHadoop(EMR)で!!のその後基幹業務もHadoop(EMR)で!!のその後
基幹業務もHadoop(EMR)で!!のその後
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
研究を加速するChainerファミリー
研究を加速するChainerファミリー研究を加速するChainerファミリー
研究を加速するChainerファミリー
 
[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence Learning[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence Learning
 
AWSとGPUインスタンスのご紹介
AWSとGPUインスタンスのご紹介AWSとGPUインスタンスのご紹介
AWSとGPUインスタンスのご紹介
 

More from Narihiro Nakamura

More from Narihiro Nakamura (20)

Symbol GC
Symbol GCSymbol GC
Symbol GC
 
RUBYLAND
RUBYLANDRUBYLAND
RUBYLAND
 
Ruby's GC 20
Ruby's GC 20Ruby's GC 20
Ruby's GC 20
 
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
 
Fxxking gc.c
Fxxking gc.cFxxking gc.c
Fxxking gc.c
 
Parallel worlds of CRuby's GC
Parallel worlds of CRuby's GCParallel worlds of CRuby's GC
Parallel worlds of CRuby's GC
 
Parallel worlds of CRuby's GC
Parallel worlds of CRuby's GCParallel worlds of CRuby's GC
Parallel worlds of CRuby's GC
 
GC FAQ
GC FAQGC FAQ
GC FAQ
 
G1GCへ伸びていた「いばらの道」
G1GCへ伸びていた「いばらの道」G1GCへ伸びていた「いばらの道」
G1GCへ伸びていた「いばらの道」
 
円環の理(Garbage Collection)
円環の理(Garbage Collection)円環の理(Garbage Collection)
円環の理(Garbage Collection)
 
地獄のGC本スピンオフ
地獄のGC本スピンオフ地獄のGC本スピンオフ
地獄のGC本スピンオフ
 
シャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできることシャイなRubyistがRubyKaigiでできること
シャイなRubyistがRubyKaigiでできること
 
われわれは、GCをX倍遅くできる
われわれは、GCをX倍遅くできるわれわれは、GCをX倍遅くできる
われわれは、GCをX倍遅くできる
 
GC生誕50周年を祝って
GC生誕50周年を祝ってGC生誕50周年を祝って
GC生誕50周年を祝って
 
GC本のツクリカタ
GC本のツクリカタGC本のツクリカタ
GC本のツクリカタ
 
シャイな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社内勉強会
 
絶対復習について
絶対復習について絶対復習について
絶対復習について
 
AlgorithmDesign01
AlgorithmDesign01AlgorithmDesign01
AlgorithmDesign01
 

Recently uploaded

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Recently uploaded (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

RubyのGC改善による私のエコライフ