Ruby 1.9.xに使用されるGCチューニングは、2.0でもGCの新しい実装に関連しているかどうか疑問に思いました。もしそうなら、新しいものに構成できる新しいものはありますか?バージョン?
私は次の設定について話している
Ruby_HEAP_MIN_SLOTS=600000
Ruby_GC_MALLOC_LIMIT=59000000
Ruby_HEAP_FREE_MIN=100000
これらのGCチューニングパラメータについてはかなり混乱があります。 REE(Ruby 1.8.7)のフォークです) 最初に独自のパラメーターを導入しました 、その後Ruby(1.9以降.2)独自の(同様の)パラメーターを導入しました。Ruby 1.9.3は環境変数を介してそれらをカスタマイズ可能にし、Ruby 2.1.0はさらに多くを追加しました。
このブログ投稿 MRIでのガベージコレクションと、すべての調整変数の意味について詳しく説明します。
各Rubyバージョンのすべてのチューニング変数の完全なリストは次のとおりです。
REE ソース
(ハードコーディングされていますが、 このパッチ を使用して環境変数を介してカスタマイズできます)
ルビー1.9.3 ソース
Ruby 2.0.0 ソース
Ruby 1.9.3と同じ
Ruby 2.1.0 ソース
Ruby 2.1.1 ソース
From Ruby 2.1.x http://tmm1.net/Ruby21-rgengc/
export Ruby_GC_HEAP_INIT_SLOTS=600000
export Ruby_GC_HEAP_FREE_SLOTS=600000
export Ruby_GC_HEAP_GROWTH_FACTOR=1.25
export Ruby_GC_HEAP_GROWTH_MAX_SLOTS=300000
またはこれ
# Boost Ruby
export Ruby_GC_HEAP_INIT_SLOTS=1000000 # 1M
export Ruby_GC_HEAP_FREE_SLOTS=500000 # 0.5M
export Ruby_GC_HEAP_GROWTH_FACTOR=1.1
export Ruby_GC_HEAP_GROWTH_MAX_SLOTS=10000000 # 10M
export Ruby_GC_MALLOC_LIMIT_MAX=1000000000 # 1G
export Ruby_GC_MALLOC_LIMIT_GROWTH_FACTOR=1.1
# export Ruby_GC_OLDMALLOC_LIMIT=500000000 # 500M
# export Ruby_GC_OLDMALLOC_LIMIT_MAX=1000000000 # 1G
# export Ruby_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR=1.1
$ rvm install 2.1.2 --patch railsexpress -n railsexpress
$ rvm --default use 2.1.2-railsexpress