prelude: | # to be used with: --disable-gems --jit-min-calls=2 def compile(call) eval(<<~EOS) #{call}; #{call} if RubyVM::MJIT.enabled? RubyVM::MJIT.pause(wait: true) end EOS end benchmark: - name: "mjit_exec_iseq_vme_jit " prelude: | def jit() end compile('jit') script: jit - name: mjit_exec_iseq_vme_jit_jit prelude: | def jit2() end def jit() jit2() end compile('jit') script: jit - name: mjit_exec_iseq_vme_jit_vme prelude: | def jit2() rescue; end def jit() jit2() end compile('jit') script: jit - name: "mjit_exec_send_vme_jit " prelude: | def jit() end compile('send(:jit)') script: send(:jit) - name: mjit_exec_send_vme_jit_jit prelude: | def jit2() end def jit() send(:jit2) end compile('send(:jit)') script: send(:jit) - name: mjit_exec_send_vme_jit_vme prelude: | def jit2() rescue; end def jit() send(:jit2) end compile('send(:jit)') script: send(:jit) loop_count: 30000000