Want to get started with YJIT? See the latest README for details. The short version goes:
# If you have a YJIT-capable Ruby installed, run with the --yjit flag ruby --yjit my_file_to_make_faster.rb RUBYOPT="--yjit" rails server # Any Ruby 3.1.0 or later has YJIT support rvm install ruby-3.1 ruby-build 3.1.0 ~/.rubies/ruby-3.1.0
You can install Ruby 3.1.0 or higher to get the most recent release of YJIT. 3.2.0 or higher is strongly preferred for long-running servers.
Snippets to disassemble chunks of Ruby code:
# To disassemble Ruby bytecode: puts RubyVM::InstructionSequence.disassemble(method :whatever_method) # Ruby bytecode plus YJIT assembly language (only on dev YJIT): puts RubyVM::YJIT.disasm(method :whatever_method) # If you want to do YJIT disassembly, you'll need to run with YJIT ruby --yjit my_disassembly_test.rb # And when you build Ruby, you'll need to turn on dev YJIT: ./configure --yjit-enable=dev
You can find more BBV and YJIT talks and papers in the CRuby YJIT README.
Slides from my talk