mirror of
https://github.com/haml/haml.git
synced 2022-11-09 12:33:31 -05:00
43 lines
1.1 KiB
Ruby
43 lines
1.1 KiB
Ruby
# Monkey patch to show milliseconds
|
|
module Benchmark
|
|
module IPS
|
|
class Report
|
|
module EntryExtension
|
|
def body
|
|
return super if Benchmark::IPS.options[:format] != :human
|
|
|
|
left = "%s i/s (%1.3fms)" % [Helpers.scale(ips), (1000.0 / ips)]
|
|
iters = Helpers.scale(@iterations)
|
|
|
|
if @show_total_time
|
|
left.ljust(20) + (" - %s in %10.6fs" % [iters, runtime])
|
|
else
|
|
left.ljust(20) + (" - %s" % iters)
|
|
end
|
|
end
|
|
end
|
|
Entry.send(:prepend, EntryExtension)
|
|
end
|
|
end
|
|
|
|
module CompareExtension
|
|
def compare(*reports)
|
|
return if reports.size < 2
|
|
|
|
sorted = reports.sort_by(&:ips).reverse
|
|
best = sorted.shift
|
|
$stdout.puts "\nComparison:"
|
|
$stdout.printf "%20s: %10.1f i/s (%1.3fms)\n", best.label, best.ips, (1000.0 / best.ips)
|
|
|
|
sorted.each do |report|
|
|
name = report.label.to_s
|
|
|
|
x = (best.ips.to_f / report.ips.to_f)
|
|
$stdout.printf "%20s: %10.1f i/s (%1.3fms) - %.2fx slower\n", name, report.ips, (1000.0 / report.ips), x
|
|
end
|
|
|
|
$stdout.puts
|
|
end
|
|
end
|
|
extend CompareExtension
|
|
end
|