MacOSでのパフォーマンス向上:YJITを使ってRubyをインストールする

MacOSでのパフォーマンス向上:YJITを使ってRubyをインストールするためのカバー画像

写真提供:Joshua FullerUnsplashに掲載されたもの

画期的なJust-In-TimeコンパイラーであるYJITは、Rubyのアプリケーションのパフォーマンスを大幅に向上させます。ただし、YJITはデフォルトではRubyに有効になっていない点に留意する必要があります。心配はいりません。いくつかの簡単な手順を踏むだけで、MacOSシステムでYJITのパワーを活用することができます。

まず第一に、適切な設定オプションを用いてRubyを再ビルドすることが不可欠です。これには、--enable-yjitフラグを使用する必要があります。さらに、YJITはrustcに依存しているため、rustcがインストールされていることを確認してください。

ruby-buildを活用しているユーザーの場合、環境変数を介してコンパイルオプションを簡単に取り入れることができます。これにより、アプリケーションが高速かつ効率的に実行されるよう、YJITをRuby環境にシームレスに統合することができます。

$ brew install rust
$ RUBY_CONFIGURE_OPTS="--enable-yjit" rbenv install 3.3.0

$ rbenv shell 3.3.0

$ ruby --yjit -v
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]

$ ruby --yjit -e "p RubyVM::YJIT.enabled?"
true

$ ruby -e "RubyVM::YJIT.enable; p RubyVM::YJIT.enabled?"
true

これらのシェルの命令は、追加でRustをインストールし、YJITを設定し、YJITサポート付きのRuby 3.3.0をインストールし、コマンドラインおよびRubyスクリプト内でYJITが有効になっているかどうかを確認するためのステップバイステップガイドを提供します。rustcがインストールされたら、rubyはYJITが有効にビルドされるため、RUBY_CONFIGURE_OPTS環境変数を指定する必要はなくなりますが、万が一依存関係が足りない場合に備えて、明確さのために含めています。

エキサイティングなことに、Ruby 3.3.0のリリースにより、コード(ランタイム)から直接YJITを有効にする新しい可能性があります。これにより、開発者はより大きな柔軟性と制御を得て、自分のニーズに合わせてRubyのセットアップを微調整することができます。

RubyVM::YJIT.enable if defined? RubyVM::YJIT.enable

最後に、これらの手順に従い、最新のRubyのアップデートに気をつけることで、アプリケーションの新しいパフォーマンスレベルを解き放つことが、直面なプロセスで大きな利益をもたらします。

参照資料

  1. YJITのインストール手順

  2. ruby-build README

  3. Ruby 3.3.0 Released

    こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
    https://dev.to/miry/unlocking-performance-installing-ruby-with-yjit-on-macos-3iei