class Drnbench::PublishSubscribe::ProgressiveRunner

Attributes

total_results[R]

Public Class Methods

new(config) click to toggle source
# File lib/drnbench/publish-subscribe/progressive-runner.rb, line 24
def initialize(config)
  @config = config
  @runner = Runner.new(@config)
end

Public Instance Methods

run() click to toggle source
# File lib/drnbench/publish-subscribe/progressive-runner.rb, line 29
def run
  results = []
  @runner.setup
  begin
    @config.n_steps.times do
      run_once(results)
    end
  ensure
    @runner.teardown
  end
  @total_results = [
    ["case", "qps"],
  ]
  @total_results += results
end

Private Instance Methods

run_once(results) click to toggle source
# File lib/drnbench/publish-subscribe/progressive-runner.rb, line 46
def run_once(results)
  @runner.increase_subscribers
  label = "#{@runner.n_subscribers} subscribers"
  GC.disable
  result = Benchmark.bm do |benchmark|
    benchmark.report(label) do
      @runner.run
    end
  end
  GC.enable
  GC.start
  result = result.join("").strip.gsub(/[()]/, "").split(/\s+/)
  qps = @config.n_publishings.to_f / result.last.to_f
  if @config.report_progressively
    puts "   (#{qps} queries per second)"
  end
  results << [label, qps]
end