YJIT
ワイジット(Ruby 3.0以降の新機能)
意味 Ruby 3.1の新しいJITコンパイラ
YJITとは?
YJITは、Ruby 3.1で導入された新しいJust-In-Time(JIT)コンパイラです。YJITは、MJITの後継として開発され、より高速で効率的なパフォーマンスを提供することを目的としています。YJITは特に短時間で終了するプログラムや、ウェブアプリケーションのような頻繁に再起動するプログラムで効果を発揮します。
YJITの具体的な使い方
YJITを有効化してRubyプログラムを実行する
ruby --yjit example.rb
この例では、YJITを有効にしてRubyプログラム(example.rb)を実行しています。--yjitオプションを使用することで、YJITが有効になり、プログラムの実行速度が向上する可能性があります。
YJITの統計情報を表示する
ruby --yjit --yjit-stats example.rb
👇出力結果
YJIT統計情報:
コンパイルされた命令数: XXXX
コード生成に要した時間: XXX.XX ms
...
この例では、YJITを有効にしてRubyプログラムを実行し、さらにYJITの統計情報を表示します。--yjit-statsオプションを使用することで、YJITの動作に関する詳細な情報を確認できます。
YJITのパフォーマンス比較
# YJITなしで実行
time ruby benchmark.rb
# YJITありで実行
time ruby --yjit benchmark.rb
👇出力結果
# YJITなしの場合の出力例
real 0m1.234s
user 0m1.000s
sys 0m0.200s
# YJITありの場合の出力例
real 0m0.987s
user 0m0.800s
sys 0m0.150s
この例では、同じRubyプログラム(benchmark.rb)をYJITありとなしで実行し、実行時間を比較しています。timeコマンドを使用して実行時間を測定することで、YJITの効果を確認できます。
環境変数でYJITを制御する
# YJITを有効化
RUBY_YJIT_ENABLE=1 ruby example.rb
# YJITを無効化
RUBY_YJIT_ENABLE=0 ruby example.rb
この例では、環境変数RUBY_YJIT_ENABLEを使用してYJITの有効/無効を制御しています。1を設定するとYJITが有効になり、0を設定すると無効になります。これにより、コマンドラインオプションを変更せずにYJITの動作を切り替えることができます。
YJITに関するよくある質問
YJITが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、RubyのYJITやMJIT、TypeProf、RBS、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Rubyを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!