class Benchmark::IPS::Report::Entry
Represents benchmarking code data for Report
.
Attributes
Number of Iterations. @return [Integer] number of iterations.
Label of entry. @return [String] the label of entry.
Number of Cycles. @return [Integer] number of cycles.
Measured time in microsecond. @return [Integer] number of microseconds.
Statistical summary of samples. @return [Object] statisical summary.
Public Class Methods
Instantiate the Benchmark::IPS::Report::Entry
. @param [#to_s] label Label of entry. @param [Integer] us Measured time in microsecond. @param [Integer] iters Iterations. @param [Object] stats Statistics. @param [Integer] cycles Number of Cycles.
# File lib/benchmark/ips/report.rb, line 18 def initialize(label, us, iters, stats, cycles) @label = label @microseconds = us @iterations = iters @stats = stats @measurement_cycle = cycles @show_total_time = false end
Public Instance Methods
Return Entry
body text with left padding. Body text contains information of iteration per second with percentage of standard deviation, iterations in runtime. @return [String] Left justified body.
# File lib/benchmark/ips/report.rb, line 88 def body case Benchmark::IPS.options[:format] when :human left = "%s (±%4.1f%%) i/s" % [Helpers.scale(@stats.central_tendency), @stats.error_percentage] iters = Helpers.scale(@iterations) if @show_total_time left.ljust(20) + (" - %s in %10.6fs" % [iters, runtime]) else left.ljust(20) + (" - %s" % iters) end else left = "%10.1f (±%.1f%%) i/s" % [@stats.central_tendency, @stats.error_percentage] if @show_total_time left.ljust(20) + (" - %10d in %10.6fs" % [@iterations, runtime]) else left.ljust(20) + (" - %10d" % @iterations) end end end
Print entry to current standard output ($stdout).
# File lib/benchmark/ips/report.rb, line 123 def display $stdout.puts to_s end
Return entry’s standard deviation of iteration per second in percentage. @return [Float] +@ips_sd+ in percentage.
# File lib/benchmark/ips/report.rb, line 78 def error_percentage @stats.error_percentage end
Return header with padding if +@label+ is < length of 20. @return [String] Right justified header (+@label+).
# File lib/benchmark/ips/report.rb, line 112 def header @label.to_s.rjust(20) end
LEGACY: Iterations per second. @return [Float] number of iterations per second.
# File lib/benchmark/ips/report.rb, line 45 def ips @stats.central_tendency end
LEGACY: Standard deviation of iteration per second. @return [Float] standard deviation of iteration per second.
# File lib/benchmark/ips/report.rb, line 51 def ips_sd @stats.error end
# File lib/benchmark/ips/report.rb, line 55 def samples @stats.samples end
Return entry’s microseconds in seconds. @return [Float] +@microseconds+ in seconds.
# File lib/benchmark/ips/report.rb, line 72 def seconds @microseconds.to_f / 1_000_000.0 end
Control if the total time the job took is reported. Typically this value is not significant because it’s very close to the expected time, so it’s supressed by default.
# File lib/benchmark/ips/report.rb, line 66 def show_total_time! @show_total_time = true end
Return string repesentation of Entry
object. @return [String] Header and body.
# File lib/benchmark/ips/report.rb, line 118 def to_s "#{header} #{body}" end