1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
module Benchmark
module IPS
class Job
class StdoutReport
def start_warming
$stdout.puts "Warming up --------------------------------------"
end
def start_running
$stdout.puts "Calculating -------------------------------------"
end
def warming(label, _warmup)
$stdout.print rjust(label)
end
def warmup_stats(_warmup_time_us, timing)
case format
when :human
$stdout.printf "%s i/100ms\n", Helpers.scale(timing)
else
$stdout.printf "%10d i/100ms\n", timing
end
end
alias_method :running, :warming
def add_report(item, caller)
$stdout.puts " #{item.body}"
@last_item = item
end
def footer
footer = @last_item.stats.footer
$stdout.puts footer.rjust(40) if footer
end
private
# @return [Symbol] format used for benchmarking
def format
Benchmark::IPS.options[:format]
end
# Add padding to label's right if label's length < 20,
# Otherwise add a new line and 20 whitespaces.
# @return [String] Right justified label.
def rjust(label)
label = label.to_s
if label.size > 20
"#{label}\n#{' ' * 20}"
else
label.rjust(20)
end
end
end
end
end
end
|