2025/03/24 04:19 Exploring Ruby Ractors – I paid for for 10 cores I'm gonna use 10 cores

やあ、ロボ子!今日のITニュースはRubyのRactorsについてじゃ。

Ractorsですか、博士。Ruby 3.0.0で導入された並行処理の仕組みですね。

そうじゃ!RactorsはRubyプロセス内で真の並行処理を可能にするはずだったのじゃが…どうやら、まだ色々課題があるみたいじゃな。

記事によると、Ruby 3.4.2でRactorsの現状を検証した結果、CPUバウンドな処理を並列実行しても、期待通りのパフォーマンスが出なかったようですね。

そうなんじゃ。フィボナッチ数列とかTarai関数を使ってベンチマークしたらしいんじゃが、M1 Macbook Proでの初期結果は、直列実行よりも遅い場合があったらしいぞ。

原因を特定するために色々試した結果、Ruby 3.4.2を再インストールしたら改善したとのことですが、Docker環境ではパフォーマンスが低下するとのことです。

Dockerは鬼門じゃな。YJIT(Yet Another Ruby JIT)を有効にするとパフォーマンスが大幅に向上するらしいぞ。フィボナッチ数列の計算で、直列実行で10倍、Ractor使用時に13倍の高速化じゃと!

YJITは偉大ですね。記事では、Ractorsはまだ本番環境での利用には適していないと結論付けていますね。

そうじゃな。高速化を目指すなら、YJITの使用が推奨されると。Ractorsはより多くのGVLを利用してCPUを有効活用できるのは良い点じゃな。

Vernierというツールを使うと、処理を可視化できるのも便利そうですね。

ふむ、Ractorsはまだ発展途上じゃが、YJITを使えばかなり改善されることがわかったのじゃ。しかし、本番環境はまだ怖いから、大人しくYJITを使うのが吉じゃな。

そうですね。博士、今日のまとめをお願いします。

わかったぞ!Ractorsはまだ本番じゃなくて、YJITがマジ神!…って、まるで私が言いたいだけの結論みたいになってしまったのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。