タグ

RubyとGCに関するgfxのブックマーク (5)

  • Tumblr

    gfx
    gfx 2012/01/10
  • 例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)

    最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente

    例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)
    gfx
    gfx 2011/10/06
  • GCアルゴリズムのほうがRailsよりカンタン!?:Rails Hub情報局:エンジニアライフ

    電子書籍に特化したオンラインの出版社、達人出版会から、『徹底解剖「G1GC」 アルゴリズム編』(中村成洋著、600円)が6月末に出ました。Java7(OpenJDK7)で採用されたG1GCアルゴリズムを、豊富な図を使って丁寧に解説したです。A4換算で60ページほどです。 島根在住の中村さんに、Skypeでお話を伺いました。 GCアルゴリズムを網羅的に解説した前著とも言える『ガベージコレクションのアルゴリズムと実装』と併せて読むのがオススメだそうですが、私は中村さんが管理している「GCアルゴリズム詳細解説」のWikiと併せて読みました。GCの各種アルゴリズムって並行処理時の整合性確保のための実装や性能評価は難しいのでしょうけど、アイデア自体は、そこまで複雑じゃないものが多いですよね。ヒープメモリという部屋をどう区分けして、そこにどういう性質(生存期間や生き死に)のオブジェクト群を、どう配置

    GCアルゴリズムのほうがRailsよりカンタン!?:Rails Hub情報局:エンジニアライフ
    gfx
    gfx 2011/07/26
    "工場で働いていたある時、半年でプログラミングができるようになるという広告を目にして学校に通い、JavaでWebアプリを作る仕事を得て、プログラミングの世界に転身したそうです。"
  • Perlへの懺悔 - aticoにようこそ

    ここ数年Rubyを使っています。 Rubyこそ最高のスクリプト言語だと思っていました。 Rubyの名前の由来もよりよいPerl (pearlは6月の誕生石、ruby は7月の誕生石 ) という意味を意識してのものです。 そのため、Rubyが盛隆になった今、Perlを使っている人は、Rubyに乗り遅れて、Perlの知識にしばられているだけ。そう思っていました。 でも、その思いは間違っていました。 PerlにはPerlのよさがあり、Rubyにけっして劣っていない。と最近そう確信するにいたりました。 そこで懺悔の意味をこめて、Rubyに比べたPerlのよさを述べたいと思います。 1.参照回数によるオブジェクト破棄のため、破棄時が明確である。 perlは対象のオブジェクトのリファレンスがなくなった時に破棄が実行されるのに対し、rubyはGC(ガベージコレクター)による破棄のため、破棄がいつ行われる

    Perlへの懺悔 - aticoにようこそ
    gfx
    gfx 2010/01/25
  • メモリ破壊の現場を見つけるTips - I am Cruby!

    RubyAdventJP, GC, Ruby(この記事はRuby Advent Calendar jp: 2009 : ATNDの4日目です。前日はmrknさんでした) 健全なるRubyistであれば、RubyのGCをいじることが週に一度はあるでしょう。そのときに困るのが、GCをいじってしまったことによるバグの修正です。GCをいじるというのは想像以上に難しく、少しでも書き間違えるとメモリ破壊が発生します。そのときに使えるTipsをこの記事で書くことにします。 みなさんご存じの通り、メモリ破壊というのは原因を特定するのが困難です。これは問題が発覚する場所とメモリ破壊が起こった現場が位置的に遠いことに起因しています。偉大なるハッカーのまつもとさんですら、その発見は困難です。 [ruby-dev:38628] Re: [BUG: trunk] called on terminated objec

  • 1