JITコンパイラを初搭載した「Ruby 2.6.0-preview1」リリース。大幅な実行速度向上を目指し
オープンソースのプロラミング言語「Ruby」が25周年を迎えたその日に、JITコンパイラを初搭載した「Ruby 2.6.0-preview1」がリリースされました。
関連記事:Ruby誕生25周年を祝うイベント「Ruby25」開催。まつもと氏にサプライズでお嬢様ふたりから花束贈呈
Rubyでは、次のメジャーバージョンアップとなるRuby3をRuby2の3倍の実行速度にするという「Ruby 3x3」(ルビースリーバイスリー)構想に基づいて開発が進められています。JITコンパイラの実現は実行性能の向上に欠かせない要素であり、プレビュー版でのJITの初搭載はRuby 3x3の実現に向けて大きな一歩を刻んだと言えるでしょう。
まだプレビュー段階ということで「今回のリリースはこのJITコンパイル機能を皆さんの環境で動作を確認して頂くとともに、セキュリティ上の問題が無いかを早期に確認するために行っています。 」と説明されています。
下記は発表文「Ruby 2.6.0-preview1 リリース」から。
JITコンパイラはあらゆるRubyプログラムの実行を高速化することを目的としています。 他言語の一般的なJITコンパイラと異なり、RubyのJITコンパイラはC言語のソースコードをファイルとしてディスクに書き、通常のCコンパイラを用いてネイティブコードに変換することでJITコンパイルを行うという手法を用いています。
(参考: Vladimir MakarovのMJIT organization)
ただし現時点ではJITコンパイラはまだ準備段階であり、大幅な性能向上は今後行われるとのこと。
現在はJITコンパイルの基盤を準備している段階で、少数の最適化のみ実装しています。そのため現在でもいくつかのマイクロベンチマークでは潜在的な速度改善が見られるものの、より大きなプログラム、特にRailsアプリケーションなどではJITコンパイラの性能を計測出来る段階ではありません。
今後はインライン化等を実装することでRubyの性能を桁違いに向上させます。また、Visual Studioを筆頭に、サポートする環境も増やしていきます。
関連記事
Ruby25周年記念イベントの記事も合わせてお読みください。
あわせて読みたい
終わりなく増えていくストリームデータ特化の分散ストレージ「Pravega」、EMCがオープンソースで公開。これまでのストレージとどう違う?[PR]
≪前の記事
Ruby誕生25周年を祝うイベント「Ruby25」開催。まつもと氏にサプライズでお嬢様ふたりから花束贈呈