BT

Ruby 2.1.0リリース,新しいGCを提供

| 作者: Jeff Martin フォローする 16 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2014年1月13日. 推定読書時間: 1 分 |

原文(投稿日:2013/12/30)へのリンク

Ruby 2.1の公式リリースが公開された待望されていた多数の改善の中にはガベージコレクタの大幅な変更も含まれ,将来的なパフォーマンスの向上を期待させている。

Ruby 2.1のガベージコレクタは世代別ガベージコレクションを実装したもので,RubyではこれをRGenGC(Restricted Generational Garbage Collection)と呼んでいる。これによって,従来のバージョンで使用されていた “マーク&スイープ” 方式の実装は置き換えられることになる。2013年4月にRuby開発者のKoichi Sasada氏が行ったプレゼンテーションによると,Ruby開発者たちには,保護されたオブジェクトと安全でないオブジェクトを同一ヒープ上で扱うことのできるGCアルゴリズムを実装するという課題があった。

新しいGCを使用するために,既存のCエクステンションをすべて書き直すというのは現実的ではない。そのためRGenGCでは,実装の一部としてライトバリア(Write-Barrier)が使用されている。RubyConf 2013のプレゼンテーションでSasada氏が説明したように,RGenGCは A) 世代別GCをまったく実装しない(Ruby 2.0以前のように),B) すべてのCエクステンションの書き換えが必要な世代別GCを実装する,という2つの選択肢のどちらでもない,第3の方法を提供しているのだ。

RGenGCはパフォーマンスの向上を達成しながら,同時に既存のエクステンションとの高い互換性を実現している。一般的なオブジェクトであるArrayやString, Hash, Object, Numericなどはいずれもライトバリアなので,RGenGCシステムのメリットを享受することが可能だ。内部および外部ライブラリに関する今後の開発によって,将来的にはさらなるパフォーマンスの向上も期待できる。

新しいガベージコレクションシステムだけが改善点ではない。RDoc 4.1.0やRubyGems 2.2.0,他にもいくつかのライブラリが更新されている。2.1の変更点に関する完全なリストは,プロジェクトのGitHubページにあるリリースノートで確認できる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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