タグ

rubyとGCに関するkgbuのブックマーク (5)

  • Matzにっき(2010-05-10)

    _ [Ruby] GC mark改善案 おひさしぶり。 GC sweep時間はわりと短縮できそうなので(authorNariくんがLazySweepパッチを書いてくれたし)、 このところGC mark時間を短縮するアイディアはないか、考えている。 今のRubyに入れたいので、制約として、 保守的 mark&sweep write barrierを導入しない というものがある。 しばらく前にTwitterで、「いくつかのオブジェクトをまとめて、その単位でマークする」というアイディアを披露してみたが、すぐに三浦さんから「トラバースのコストが減らないから効果ないんじゃない」との指摘が。ちょっと考えてみたら、確かにその通り。かっくり。 まあ、50年間、いろんな人が考えてきたGCで、画期的なアイディアを思いつくのは難しいよね。 まあ、そういう「誰も知らない系」ではなくて、mark時間短縮に効果のあり

    kgbu
    kgbu 2010/05/10
    方向性が定まってきた、という感じか。
  • longlife gcパッチを作成しました - I am Cruby!

    GCGW中にせこせこと作っていたGCパッチをruby-devに投稿しました.内容は以下.Railsのヒープ調査2ヶ月ほど前に,ふと気になってRailsがどんな風にヒープを使用しているか調査してみました.以下のグラフはscaffoldしたRailsアプリを動かした際のものです. 調査前は,「文字列が一番多いんじゃないか」と考えていたのですが,実際には構文木オブジェクトがヒープの半分を占めているようです.その構文木オブジェクトを更に詳しく調べたグラフが以下です. このグラフにあるNODE_METHODやNODE_CFUNC,NODE_FBODYはメソッド定義の際に使用され,NODE_WHILEやNODE_BLOCKはVMの内部で使用されているようです.  長寿命GC更に調査をすると,これらのオブジェクトはとても長生きな事が分かりました.そこで,これらを長寿命領域に隔離してしまおう,という改善を

    kgbu
    kgbu 2009/05/12
    どなたか「このコードは超遅くなるよー」とかあれば教えていただけませんでしょうか?だそうだ
  • Improving the Ruby GC - LloydForge

    Improving the Ruby GC overview This page details some changes to the ruby garbage collector which seem to afford a 25% reduction in maximum heap memory usage, and nearly double the amount of heap space ruby's is able to reclaim. This comes at the cost of a 2% performance hit. More to come, stay tuned. patch The latest patch to ruby 1.8.6 is available here. summary of changes Fixed 2k heaps Hea

  • RubyにLazySweepのパッチを作った - I am Cruby!

    Ruby, GCplanSweepをLazySweepにして、最大停止時間を改善するHeap内のオブジェクト数がある一定を超えてからLazySweepに切り替わる 通常のプログラムのスループットを落としたくないので今は一応100万にしているLazySweepフェイズではHeapの配列の数を、オブジェクト数が一定になるように選んでSweepする 配列一ずつのオブジェクト数が異なるため、Sweepの時間がばらつかないように調整したHeapの配列が1.8倍づつ増えるのがメモリ効率的にあんまりよくないので、LazySweepが始まってからは少し抑えるようにした。1.1倍くらい。 理想は「オブジェクトを何百万も作ってプログラムをぶんまわす時の最大停止を改善する。」です。その場合当然スループット性能が低下してしまうのはいかしかたなし。 patchgc_lazy_sweep_r15749_patch

    kgbu
    kgbu 2008/03/12
    Ruby のgarbage collectionの動作を改善するこころみ。たくさんオブジェクトを作っても、GCのときにプロセスが止まっちゃう減少を軽減しようとしたものらしい。
  • Matzにっき(2008-03-06) GCの改善について

    << 2008/03/ 1 1. [Ruby] Ruby 1.9.0-1 snapshot released 2. 高木浩光@自宅の日記 - 公開鍵暗号方式の誤り解説の氾濫をそろそろどげんかせんと 3. [Ruby] Lisa Awards: Biggest Hack for a Language Runtime on Dion Almaer's Blog 2 1. [教会] 第一安息日 3 1. [言語] CS 11: Python track: python idioms 2. [Ruby] Binary search algorithm - Wikipedia, the free encyclopedia 3. [OSS] Theological Cultural Analysis of the Free Software Movement 4. 小寺信良:正直、テレビはもうダメかも

    kgbu
    kgbu 2008/03/12
    おー、Matzさんひさしぶりにやる気だしてくれてますね。みんなでけなそう(嘘
  • 1