Sha256: 43bc1d8dd1a5118213631b1c6b078deeccf9216a62da4eab846df3bd875bda8a

Contents?: true

Size: 755 Bytes

Versions: 1

Compression:

Stored size: 755 Bytes

Contents

# frozen_string_literal: true
require 'rubygems'
require 'benchmark'

require_relative 'cache_runner'

RUNS = 400

class ARCreator
  include ActiveRecordObjects
end

def run(obj)
  obj.prepare
  GC.start
  Benchmark.measure do
    obj.run
  end
ensure
  obj.cleanup
end

def benchmark(runners, label_width = 0)
  IdentityCache.cache.clear
  runners.each do |runner|
    print("#{runner.name}: ".ljust(label_width))
    puts run(runner.new(RUNS))
  end
end

def bmbm(runners)
  label_width = runners.map { |r| r.name.size }.max + 2
  width = label_width + Benchmark::CAPTION.size

  puts 'Rehearsal: '.ljust(width, '-')
  benchmark(runners, label_width)
  puts '-' * width

  benchmark(runners, label_width)
end

create_database(RUNS)

bmbm(CACHE_RUNNERS)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
identity_cache-1.1.0 performance/cpu.rb