module Datadog::Core::Environment::YJIT

def available?

def available?
  defined?(::RubyVM::YJIT) \
    && ::RubyVM::YJIT.enabled? \
    && ::RubyVM::YJIT.respond_to?(:runtime_stats)
end

def code_gc_count

Code GC count
def code_gc_count
  ::RubyVM::YJIT.runtime_stats[:code_gc_count]
end

def code_region_size

Size of memory region allocated for JIT code
def code_region_size
  ::RubyVM::YJIT.runtime_stats[:code_region_size]
end

def freed_code_size

GCed code size
def freed_code_size
  ::RubyVM::YJIT.runtime_stats[:freed_code_size]
end

def freed_page_count

GCed pages
def freed_page_count
  ::RubyVM::YJIT.runtime_stats[:freed_page_count]
end

def inline_code_size

Inline code size
def inline_code_size
  ::RubyVM::YJIT.runtime_stats[:inline_code_size]
end

def live_page_count

Live pages
def live_page_count
  ::RubyVM::YJIT.runtime_stats[:live_page_count]
end

def object_shape_count

Total number of object shapes
def object_shape_count
  ::RubyVM::YJIT.runtime_stats[:object_shape_count]
end

def outlined_code_size

Outlined code size
def outlined_code_size
  ::RubyVM::YJIT.runtime_stats[:outlined_code_size]
end