module Benchkit::LoopCountReporter

Public Class Methods

report(execs, results) click to toggle source

@param [Array<Executable>] execs @param [Array<BenchmarkResult>] results

# File lib/benchkit.rb, line 194
def report(execs, results)
  puts "benchmark results:"
  puts "Execution time (sec)"
  puts "#{'%-16s' % 'name'} #{execs.map { |e| "%-8s" % e.name }.join(' ')}"

  results.each do |result|
    print '%-16s ' % result.name
    puts execs.map { |exec|
      "%-8s" % ("%.3f" % result.elapsed_time_of(exec))
    }.join(' ')
  end
  puts

  if execs.size > 1
    report_speedup(execs, results)
  end
end

Private Class Methods

report_speedup(execs, results) click to toggle source
# File lib/benchkit.rb, line 214
def report_speedup(execs, results)
  compared = execs.first
  rest = execs - [compared]

  puts "Speedup ratio: compare with the result of `#{compared.name}' (greater is better)"
  puts "#{'%-16s' % 'name'} #{rest.map { |e| "%-8s" % e.name }.join(' ')}"
  results.each do |result|
    print '%-16s ' % result.name
    puts rest.map { |exec|
      "%-8s" % ("%.3f" % (result.ips_of(exec) / result.ips_of(compared)))
    }.join(' ')
  end
  puts
end