class Koine::Profiler

Constants

VERSION

Public Class Methods

instance() click to toggle source
# File lib/koine/profiler.rb, line 30
def self.instance
  @instance ||= new
end
new() click to toggle source
# File lib/koine/profiler.rb, line 7
def initialize
  @entries = {}
end

Public Instance Methods

entries() click to toggle source
# File lib/koine/profiler.rb, line 26
def entries
  @entries.values
end
profile(name) { || ... } click to toggle source
# File lib/koine/profiler.rb, line 11
def profile(name)
  value = nil
  start_time = Time.now.utc
  start_memory = GetProcessMem.new.mb
  value = yield if block_given?
  finish_memory = GetProcessMem.new.mb
  finish_time = Time.now.utc
  add_entry(
    name,
    time: finish_time - start_time,
    memory: finish_memory - start_memory
  )
  value
end

Private Instance Methods

add_entry(name, time:, memory:) click to toggle source
# File lib/koine/profiler.rb, line 36
def add_entry(name, time:, memory:)
  entry = @entries[name] ||= Entry.new(name)
  entry.increment(elapsed_time: time, memory_used: memory)
end