module Benchmark::Trend::Clock

def initialize

def initialize
  super()
  @last_time = Time.now.to_f
  @lock = Mutex.new
end

def measure

Returns:
  • (Float) -
def measure
  before = now
  yield
  after = now
  after - before
end

def now

Other tags:
    Api: - private
def now
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
end

def now

Other tags:
    Api: - private
def now
  @lock.synchronize do
    current = Time.now.to_f
    if @last_time < current
      @last_time = current
    else # clock moved back in time
      @last_time += 0.000_001
    end
  end
end

def now

Other tags:
    Api: - public

Returns:
  • (Float) -
def now
  MONOTONIC_CLOCK.now
end