Ruby 3.3正式リリース。YJITコンパイラの大幅な性能向上、RubyのスレッドスケジューラとしてM:Nスレッドスケジューラ導入など新機能

2024年1月9日

Ruby開発チームは、2023年12月25日にRuby 3.3の正式リリースを発表しました。Rubyは毎年12月25日に新バージョンをリリースすることが恒例となっており、今回も予定通りに新バージョンが登場しています。

fig

Ruby 3.3では、Shopifyが中心となって開発を進めてきたJITコンパイラのYJITコンパイラの大幅な性能向上、Rubyに同梱されているdefault gemとしてPrismパーサの導入、よりコストの小さなM:Nスレッドスケジューラの導入など新機能が加わっています。

YJITコンパイラの大幅な性能向上

Rubyはもともとインタプリタとして登場しましたが、現在では実行速度向上のためにJITコンパイラを取り入れるようになっています。

Ruby 3.1でメインラインにマージされたYJITコンパイラは、ECサイト構築サービスを提供するShopifyが、大規模なRailsアプリケーションにおいてより高い性能向上を目指して開発したJITコンパイラです。

2022年末に登場したRuby 3.2に搭載されたYJITコンパイラは本番環境にも耐える品質になったとされ、実際にShopifyが本番に投入したことを表明。その後も性能と品質の改善が進められてきました。

今回のRuby 3.3に搭載されたYJITコンパイラでは大幅なパフォーマンスの改善のほか、メモリ使用量の大幅な改善、パフォーマンスの急激な低下を起こす可能性があるコードGCのデフォルトでの無効化、プロファイリング機能の追加などが行われています。

また、今回実験的な実装として、新たにRubyで書かれたJITコンパイラであるRJITがMJITに置き換えられて導入されました。

M:Nスレッドスケジューラ

新たにRubyのスレッドスケジューラとしてM:Nスレッドスケジューラが導入されました。これはM個のRubyスレッドをN個のOSのネイティブスレッドで管理するため、スレッドの生成管理コストを抑えることができるようになります。

ただしC拡張ライブラリの互換性に問題が生じる可能性があるため、メインRactorでのM:Nスレッドスケジューラはデフォルトでは無効にされています。

また、Rubyに同梱されているdefault gemとしてPrismパーサが導入され、Ripperの代わりに使えるようになりました。

その他、Ruby 3.3の詳細は発表文をご覧ください

あわせて読みたい

プログラミング言語 Ruby




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本