Class: Bench::Measurement

Inherits:
Object
  • Object
show all
Defined in:
lib/bench9000/measurement.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(warmup_samples, samples) ⇒ Measurement

Returns a new instance of Measurement.



24
25
26
27
28
29
30
31
32
33
# File 'lib/bench9000/measurement.rb', line 24

def initialize(warmup_samples, samples)
  @warmup_samples = warmup_samples
  @samples = samples

  @warmup_time = Stats.sum(warmup_samples)
  @sample_mean = Stats.mean(samples)
  @sample_error = Stats.standard_deviation(samples)
  @score = to_score(@sample_mean)
  @score_error = to_score(@sample_mean - @sample_error) - to_score(@sample_mean)
end

Instance Attribute Details

#sample_errorObject (readonly)

Returns the value of attribute sample_error.



19
20
21
# File 'lib/bench9000/measurement.rb', line 19

def sample_error
  @sample_error
end

#sample_meanObject (readonly)

Returns the value of attribute sample_mean.



18
19
20
# File 'lib/bench9000/measurement.rb', line 18

def sample_mean
  @sample_mean
end

#samplesObject (readonly)

Returns the value of attribute samples.



14
15
16
# File 'lib/bench9000/measurement.rb', line 14

def samples
  @samples
end

#scoreObject (readonly)

Returns the value of attribute score.



21
22
23
# File 'lib/bench9000/measurement.rb', line 21

def score
  @score
end

#score_errorObject (readonly)

Returns the value of attribute score_error.



22
23
24
# File 'lib/bench9000/measurement.rb', line 22

def score_error
  @score_error
end

#warmup_samplesObject (readonly)

Returns the value of attribute warmup_samples.



13
14
15
# File 'lib/bench9000/measurement.rb', line 13

def warmup_samples
  @warmup_samples
end

#warmup_timeObject (readonly)

Returns the value of attribute warmup_time.



16
17
18
# File 'lib/bench9000/measurement.rb', line 16

def warmup_time
  @warmup_time
end

Instance Method Details

#to_score(sample) ⇒ Object



35
36
37
# File 'lib/bench9000/measurement.rb', line 35

def to_score(sample)
  1 / sample * 1000
end

#total_timeObject



39
40
41
# File 'lib/bench9000/measurement.rb', line 39

def total_time
  Stats.sum(warmup_samples + samples)
end