Rubyインストール時にRust環境が必要
Ruby 3.3.0では簡単にYJITが選択できるようになっているのですが、前提条件としてRubyビルド時にRustコンパイラがインストールされている必要があります。Rustが入っていない場合、YJITが使えないRubyがビルドされてしまうので注意しましょう。 これはrbenvでRubyをインストールする場合も例外ではありません。Macの場合は次のような手順で事前にRust環境をインストールしておきます。
$ brew install rustup-init $ rustup-init $ exec $SHELL -l $ rbenv install 3.3.0
rubyを--yjit
オプション付きで実行するとYJITが有効になります。バージョン情報を確認すると「+YJIT」と表示されて、YJITが有効になっていることが確認できます。
% ruby -v --yjit ruby 3.3.0 (2023-12-25 revision 5124f9ac75) +YJIT [arm64-darwin23]
RailsでYJITを有効化する方法
--yjit
オプション以外の方法として、プログラム実行時にRubyVM::YJIT.enable
とすることで実行中動的にYJITが有効化されます。
Railsの場合、config/initializersに置くと良いです。
if defined? RubyVM::YJIT.enable Rails.application.config.after_initialize do RubyVM::YJIT.enable end end
これはRails 7.2でデフォルトの挙動になる予定です。 https://github.com/rails/rails/pull/49947