BT

新しい あなたは、アーリーアダプター?それともイノベーター?そんな皆様に、InfoQの新機能をご案内しています。詳細はこちら

Ruby 1.9.3 Preview 1がリリース。Lazy Sweep GCにより、GCの停止時間が改善。

| 作者: Werner Schuster フォローする 2 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2011年8月13日. 推定読書時間: 1分未満 |

原文(投稿日:2011/08/05)へのリンク

Ruby 1.9.3 Preview 1 がリリースされ、APIに追加があったが、GCのアップデート、lazy sweep GC(遅延開放GC)が含まれた。
InfoQは Ruby 1.9.3に lazy sweep GCの変更をコントリビュートした Narihiro Nakamura 氏に話を聞いた。

InfoQ: lazy sweep GC はこれまでのGCとどう違うのですか?

Simple(非遅延) Mark Sweep GCは、マーク付けと開放を自動的に実行します。また全ヒープを開放し、生きている全オブジェクトを freelistにリンクします。
Lazy sweepでは、適当なマークのないオブジェクトを見つけて、オブジェクトの割り当てが開始したらヒープを開放します。

InfoQ: ところで、lazy sweep GCの一番の利点は、停止時間が短いことですよね? すなわち、停止時間は、続行するのに充分なフリースペースを見つける時間に限られるのですよね?

そうです。Lazy sweepはGCのレスポンス時間の改善します。すなわり、最悪ケースの時間が短くなります。しかし、GCの全体的なスループットは落ちます。

私は、 Simple M&S GC と Lazy sweep GCをMRIで、ベンチマークプログラム (http://redmine.ruby-lang.org/attachments/959/bm_gc_fragmentation.rb)を使って比べました。

最大 GC 時間:48.00ms => 28.00ms (58%)
全 GC 時間:0.83ms => 0.92ms (110%)

InfoQ: lazy sweep GCが不利になるのは、どのようなタイプのプログラムの動きなのでしょうか?

もしプログラムが多くの長寿命なオブジェクトを生成すれば、 lazy sweepは、マークのないオブジェクトを見つけ出せないでしょう。その場合、 lazy sweepは、1つのオブジェクトをアロケートするのに長い時間かかります。私は、ほとんどの場合、lazy sweepのパフォーマンスの方が、依然として M&S GCよりもいい、と考えています。

InfoQ: 今後のMRI 1.9.xに向けたGCの開発、あるいは改善のための計画が何か、ありますか?

ええ、私は、MRI用の並行マーキングGCを作成中です。

現在、 RDoc文書('make rdoc'を使って)を生成するのに、私のマシンで約80秒かかります。その時間の30%がGCに費やされています。私は、2コアCPUマシンで、何とかこれをざっと40%改善しました。

私は、RubyConf 2011でこれについて話すつもりです。

lazy sweep GCの実装は Rubyの gc.c にあり、特に lazy_sweep gc_lazy_sweep 関数にある。

Ruby標準ライブラリの変更は、Ruby 1.9.3 Preview 1 Release Notes に記載されている。ライセンスに関係する変更もある。リリースノートによると、「Rubyのライセンスは、 GPLv2 によるデュアルライセンスから 2-clause BSDLによるデュアルライセンスに変更された。」

Ruby 1.9.3もそろそろなので、再び Ruby 1.8.x 対 Ruby 1.9.2の状況を見るべき時である。Rubyをホストする人達は、1.9.xの方向に動いてきている。 Herokuが Cedar stack を導入した。これは彼らのPaaSを動かしている。 Cedarは Ruby 1.9.2版を提供しているが、 1.8.xは提供していない。 Engine Yardの AppCloudは、デフォルトを Ruby 1.9.2にしている

開発者が1.9.xに移行するのを助けるために、もう一つ中間のリリースが以前計画されたが、 Ruby 1.8.8は、キャンセルされた。Ruby 1.8.6 は、特にライブラリで、かなり後に置かれている。例えば RDoc 3はサポートされない。1.8.7ではサポートされている。

1.9.xをサポートするGemsの状況を、 isitruby19.comで見ることができる

1.8.xにとどまる理由がありますか?

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT