Ruby - A Programmer's Best Friend

Rubyコミュニティは12月25日(米国時間)、「Ruby 2.2.0 Released」においてRubyの最新版となる「Ruby 2.2.0」を公開したと伝えた。Ruby 2.2.0は多くの新機能や機能改善が実施されているが、特にガベージコレクタの改良が注目されるバージョンとなっており、Rails 5.0以降は今回リリースされたバージョンが要求されている。

Ruby 2.2.0よりも前のバージョンのRubyのガベージコレクタはシンボルタイプオブジェクトをガベージコレクトの対象として扱ってこなかった。Ruby 2.2.0のガベージコレクタはシンボルタイプオブジェクトもガベージコレクタの対象としており、これまでのバージョンと比較してシンボルが使用するメモリ容量が削減されている。Rails 5.0はシンボルタイプオブジェクトもガベージコレクタの対象とすることを求めているため、Rails 5.0を動作させるにはRuby 2.2.0ないしはこれ以降のバージョンのRubyが必須となる。

またRuby 2.2.0のガベージコレクタにはインクリメンタルガベージコレクションの機能も追加されており、従来と比較して一時停止が発生することが減っている。Rails 5.0ではすでにこの効果が確認されており、従来よりもスムーズに動作するようになったと報告されている。

まだ実験段階とされておりデフォルトでは有効になっていないが、メモリ確保の実装としてjemallocが採用された点も注目される。jemallocはFreeBSDやFirefoxで採用されているメモリ管理の実装系で、メニーコアにおいて高いスケールと効率のよいメモリ管理を実現することが知られている。有用性が確認されれば今後のバージョンでデフォルトで有効になれる可能性がある。