class Benchmark::Perf::IPSResult

Constants

NO_VALUE

Indicate no value

Attributes

ips[R]
iter[R]

Public Class Methods

new() click to toggle source

Create storage for ips results

@api private

# File lib/benchmark/perf/ips_result.rb, line 18
def initialize
  @avg = NO_VALUE
  @stdev = NO_VALUE
  @dt = NO_VALUE
  @measurements = []
  @ips = []
  @iter = 0
end

Public Instance Methods

add(time_s, cycles_in_100ms) click to toggle source

@api private

# File lib/benchmark/perf/ips_result.rb, line 28
def add(time_s, cycles_in_100ms)
  @measurements << time_s
  @iter += cycles_in_100ms
  @ips << cycles_in_100ms.to_f / time_s.to_f
  @avg = NO_VALUE
  @stdev = NO_VALUE
  @dt = NO_VALUE
end
avg() click to toggle source

Average ips

@return [Integer]

@api public

# File lib/benchmark/perf/ips_result.rb, line 42
def avg
  return @avg unless @avg == NO_VALUE

  @avg = Stats.average(ips).round
end
dt() click to toggle source

The time elapsed

@return [Float]

@api public

# File lib/benchmark/perf/ips_result.rb, line 64
def dt
  return @dt unless @dt == NO_VALUE

  @dt = @measurements.reduce(0, :+)
end
Also aliased as: elapsed_time
elapsed_time()
Alias for: dt
inspect() click to toggle source

A string representation of this instance

@api public

# File lib/benchmark/perf/ips_result.rb, line 80
def inspect
  "#<#{self.class.name} @avg=#{avg} @stdev=#{stdev} @iter=#{iter} @dt=#{dt}>"
end
stdev() click to toggle source

The ips standard deviation

@return [Integer]

@api public

# File lib/benchmark/perf/ips_result.rb, line 53
def stdev
  return @stdev unless @stdev == NO_VALUE

  @stdev = Stats.stdev(ips).round
end
to_a() click to toggle source

@api public

# File lib/benchmark/perf/ips_result.rb, line 72
def to_a
  [avg, stdev, iter, dt]
end
Also aliased as: to_ary
to_ary()
Alias for: to_a