ja en ja es es en cv en en en en en ja ja en en en ja ja ja ja ja ja ja ja ja ja en ja ja ja en en ja en ja ja ja ja ja ja ja ja ja ja ja en en en en en fy zh ja ja ja ja ja zh ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja zh ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja ja en
結論からいうとYJITを有効にするには以下の三つ。
configureオプションに「–enable-yjit」つけてビルド
環境変数で「RUBYOPT=’–enable-yjit’」
環境変数で「RUBY_YJIT_ENABLE=1」
ここから先は読まなくてもいいです。
YJITはJITコンパイラの一つで、2.6から入っているMJITとは全く別もの。Shopifyが開発したやつ。メインラインにマージされたはいいけどまだデフォルト有効ではない。
YJIT: Building a New JIT Compiler for CRuby
ただこれ有効にするとすごく早くなるらしい。すっげー!Railsも最新のRuby対応したし自分のアプリもRails7対応したしやってみっかー!ということでYJIT有効大作戦を始めた。
有効にする方法がわからない
わからなかった。でもそこはShopifyがちゃんと書いてくれていた。
Try Out YJIT for Faster Rubying
Railsで使うのでDocker Imageにする必要があったので、Rubyコンパイル時にYJITを有効にしたDocker Imageを作成、pushした。
srockstyle/ruby-3.1-enable-yjit
ただこんなことしなくてもRubyの公式イメージもってきて「RUBY_YJIT_ENABLE=1」すれば有効にできるっぽいのであとで試してみる予定。
今回はYJITが有効化されたという状況までを作りたかったのでいったんここまで。
パフォーマンスがこれくらい早くなったとかはあちこちでいろんな人がやってるので、僕はちょっと違う切り口で記事書こうかな。
困ったら英語の公式を読むべし。
調査してる段階で以下のリンクを参考にさせてもらいました。
偉大な先駆者に感謝っ。
プロと読み解くRuby3.1NEWS / クックパッド開発者ブログ
Ruby 3.1正式リリース。Shopify開発のJITコンパイラ「YJIT」をメインラインにマージ / publickey
Ruby 3.1.0リリース / Ruby公式
YJIT: Building a New JIT Compiler for CRuby / Shopify Engineering
Try Out YJIT for Faster Rubying Shopify Engineering