1
2

Rails + Ruby 3.3.0でYJITを使ってみる

Posted at

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に置くと良いです。

config/initializers/enable_yjit.rb
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

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2