タグ

gcに関するseiunskyのブックマーク (7)

  • だいありー (2015-10-05)

    答え合わせ。 おっと、実時間だと、世代別 GC を、ちゃんと有効にしているやつと、あまり変わりませんね。 とありますが、system time が長いですよね。これ、システムからメモリを確保するために必要となる時間です、多分。800MB 以上ぶんどらないといけないですから。この場合、user 時間を比べて、GC の影響を見ておくのが良いでしょう。つまり、GC の影響は 1.64 sec - 1.47 = 0.17 sec。これが、GC による影響だとみることが出来ます。 まとめると、大ざっぱに オブジェクトの生成 0.7 sec GC 時間 0.2 sec という感じです。潰すべきオーバヘッドはどちらか、というのは、わかりやすい。GC は当に遅いんですかね。 あと、オブジェクトを 100M 個作っておいた、すぐあとのベンチマークでは、また違った様子ですね。これも、OS とのやりとりやら、

  • 特定条件下におけるngx_mrubyのメモリリークを改善してメモリ増加量を半分にした - 人間とウェブの未来

    4月からペパボで働いているわけですが、前々から噂できいていたメモリリークの問題について、ペパボではわりと大規模かつ高負荷な環境でngx_mrubyを使ってくれているのでその環境を見ながらメモリリークを改善してみました。 状況的には、16時間動かしていると導入している環境のngx_mrubyを組み込んだnginxが1GBぐらいメタボっていました。 実装や幾つかの調査情報をみつつ、以下の2点においてメモリリークが発生していました。 mrubyが例外をあげて5xx系のエラーコードを返す時 mruby_set系のディレクティブを使っている時 上記のそれぞれにおいて、C側で生成したオブジェクトをarenaに登録したまま、不要になったにも関わらずarenaからオブジェクトを除外してGCさせるように処理できていなかった事が問題でした。 これらを、ほぼ同等の改修によってmrb_gc_arena_save(

    特定条件下におけるngx_mrubyのメモリリークを改善してメモリ増加量を半分にした - 人間とウェブの未来
  • (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE

    Ruby 2.2 の新機能にシンボル GC というものがあります。 正直、「え、シンボルって GC されないから速いんじゃないの?なのにシンボル GC で Rails が速くなるとか話聞くけど、いったいどういうことなの?」という感じでサッパリ理解できてなかったのですが、その辺りの疑問に対してまとめられている記事がありました。 Symbol GC in Ruby 2.2 とても分かりやすく素晴らしい記事だと感じたので、許可をもらって以下に日語訳を公開します。 Symbol GC in Ruby 2.2 シンボル GC ってなに?それって気にしなくちゃいけないことなの? リリースされたばかりの Ruby 2.2 の大きな新機能として「インクリメンタル GC」が挙げられますが、もう1つの注目すべき新機能が、この「シンボル GC」 です。 もしあなたがこれまで Ruby の世界で過ごしてきたのな

    (翻訳) Ruby 2.2 のシンボル GC - FIVETEESIXONE
    seiunsky
    seiunsky 2015/01/21
    わかりやすいなー
  • Ruby Garbage Collector Performance Tuning | Carpe Diem

    Ruby のガベレージコレクションのパフォーマンスチューニングをする方法に環境変数を指定する方法があります。Ruby Enterprise Edition でも同様の設定が可能なので、パフォーマンスチューニングできるか試してみました。 以下、それぞれの環境変数の意訳です。 RUBY_HEAP_MIN_SLOTS: 最初のヒープスロット数です。デフォルトは、10000 です。 RUBY_HEAP_SLOTS_INCREMENT: Ruby が最初に新しいヒープを確保するときに必要な確保するために追加するヒープスロットの数です。デフォルトは、10000 です。例えば、デフォルトの GC 設定のとき、ヒープ上に 10000 の Ruby オブジェクトが存在しています。プログラムは他のオブジェクトを生成するとき、Ruby はそこに 10000 ヒープスロットで新しいヒープを確保するでしょう。合計で

  • 例えば 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 (移転しました)
  • voglia.jp - AS3:ガーベッジコレクタと弱参照

    FlashとかPHPとかJavascriptとか適当にガーベッジコレクタとか弱参照とかまとめ ■AS3のガーベッジコレクタ(以下GC)とメモリ開放のタイミング ・オブジェクトの値をNULLにしたり、そのオブジェクトへの参照が無くなってもその時点ではメモリは開放されない。 ・オブジェクトのメモリ開放はGC動作時に行われる ・メモリ開放の条件はオブジェクトに対する参照手段が無いこと ・GCはFlashplayer側の判断で動作 (デバッグ環境及び、AIR環境ではSystem.gc();で動作させることが可能。) ※GCが発動することでそれなりにパフォーマンスうので、出来ればGCによる開放無しでもメモリリークしない構造が望ましい。 ■参照が無いとは ASのオブジェクトは全てnewされた時点でFlash上の特定領域に格納され、それを参照する変数等を介して動作するようなイメージ。

  • GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)

    GC¥¢¥ë¥´¥ê¥º¥à¾ÜºÙ²òÀâ ÆüËܸì¤Î»ñÎÁ¤¬¤¹¤¯¤Ê¤¤GC¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤Æ¾ÜºÙ¤Ë²òÀ⤷¤Þ¤¹ ¥È¥Ã¥×¥Ú¡¼¥¸¥Ú¡¼¥¸°ìÍ÷¥á¥ó¥Ð¡¼ÊÔ½¸ GC ºÇ½ª¹¹¿·¡§ author_nari 2010ǯ03·î14Æü(Æü) 20:47:11ÍúÎò Tweet ¤³¤ÎWiki¤¬Ìܻؤ¹½ê GC¤È¤Ï¡© GC¤ò³Ø¤ÖÁ°¤ËÃΤäƤª¤¯»ö ¼Â¹Ô»þ¥á¥â¥ê¹½Â¤ ´ðËÜ¥¢¥ë¥´¥ê¥º¥àÊÔ Reference Counter Mark&Sweep Copying ±þÍÑ¥¢¥ë¥´¥ê¥º¥àÊÔ IncrementalGC À¤ÂåÊÌGC ¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È·¿GC LazySweep TwoFinger Lisp2 Pa

    GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
  • 1