max_compile_time_ns -> IntegerRuby 4.1 から[permalink][rdoc][edit]-
YJIT がコンパイルに使ってよい時間の上限をナノ秒単位で返します。 RubyVM::YJIT.total_compile_time_ns がこの値を超えると、上限が引き上げられるまで YJIT はコンパイルを止めます。 0 は無制限を表し、デフォルトは 0 です。
上限は best-effort で扱われるため、コンパイルが止まっているはずの間にもコンパイルすることがあります。 JIT のウォームアップの速さを制御し、コンパイルの負荷をより長い時間に分散させるための機能です([feature#22236])。たとえば、リクエストや一定の周期ごとにコンパイル時間の予算を割り当てたいときは、
RubyVM::YJIT.max_compile_time_ns = RubyVM::YJIT.total_compile_time_ns + 20_000_000のように、現在の合計に予算を足した値を設定します。YJIT が有効でなければ 0 を返します。
例p RubyVM::YJIT.max_compile_time_ns # => 0[SEE_ALSO] RubyVM::YJIT.max_compile_time_ns=, RubyVM::YJIT.total_compile_time_ns