Class: Diagnostics::Sample::Result

Inherits:
Object
  • Object
show all
Includes:
Schema::DataStructure
Defined in:
lib/diagnostics/sample/result.rb

Instance Method Summary collapse

Instance Method Details

#cycle(elapsed_time) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/diagnostics/sample/result.rb', line 16

def cycle(elapsed_time)
  self.time_milliseconds += elapsed_time

  self.time_sum_squares += (elapsed_time ** 2)

  self.cycles += 1
end

#cycles_per_secondObject



28
29
30
# File 'lib/diagnostics/sample/result.rb', line 28

def cycles_per_second
  cycles / (time_milliseconds / 1_000)
end

#digestObject Also known as: to_s



61
62
63
64
65
66
67
68
69
# File 'lib/diagnostics/sample/result.rb', line 61

def digest
  <<~TEXT % [cycles, time_milliseconds, mean_cycle_time_milliseconds, standard_deviation, cycles_per_second, gc]
    Cycles: %d
    Time: %fms
    Mean Cycle Time: %fms (± %fms)
    Cycles Per Second: %f
    GC: #{gc ? 'on' : 'off'}
  TEXT
end

#mean_cycle_time_millisecondsObject



24
25
26
# File 'lib/diagnostics/sample/result.rb', line 24

def mean_cycle_time_milliseconds
  time_milliseconds / cycles
end

#mean_warmup_time_millisecondsObject



47
48
49
# File 'lib/diagnostics/sample/result.rb', line 47

def mean_warmup_time_milliseconds
  warmup_time_milliseconds / warmup_cycles
end

#time_standard_deviationObject Also known as: standard_deviation



32
33
34
35
36
# File 'lib/diagnostics/sample/result.rb', line 32

def time_standard_deviation
  variance = (time_sum_squares / cycles) - (mean_cycle_time_milliseconds ** 2)

  Math.sqrt(variance)
end

#warmup_cycle(elapsed_time) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/diagnostics/sample/result.rb', line 39

def warmup_cycle(elapsed_time)
  self.warmup_time_milliseconds += elapsed_time

  self.warmup_time_sum_squares += (elapsed_time ** 2)

  self.warmup_cycles += 1
end

#warmup_cycles_per_secondObject



51
52
53
# File 'lib/diagnostics/sample/result.rb', line 51

def warmup_cycles_per_second
  warmup_cycles / (warmup_time_milliseconds / 1_000)
end

#warmup_time_standard_deviationObject



55
56
57
58
59
# File 'lib/diagnostics/sample/result.rb', line 55

def warmup_time_standard_deviation
  variance = (warmup_time_sum_squares / warmup_cycles) - (mean_warmup_time_milliseconds ** 2)

  Math.sqrt(variance)
end