Class: Procview::Stats

Inherits:
Object
  • Object
show all
Defined in:
lib/procview/stats.rb

Constant Summary collapse

TYPE =
{ other: 0, wait: 1, read: 2, write: 3 }.freeze

Instance Method Summary collapse

Constructor Details

#initializeStats

Returns a new instance of Stats.



108
109
110
# File 'lib/procview/stats.rb', line 108

def initialize
    @accumulators = 4.times.map{ Accumulator.new }
end

Instance Method Details

#[](y) ⇒ Object



111
112
113
# File 'lib/procview/stats.rb', line 111

def [](y)
    @accumulators[y].sum
end

#acc!(type, duration) ⇒ Object



123
124
125
# File 'lib/procview/stats.rb', line 123

def acc! type, duration
    @accumulators[TYPE[type]].acc! duration
end

#add!(other) ⇒ Object



117
118
119
# File 'lib/procview/stats.rb', line 117

def add!(other)
    @accumulators.map!.with_index{|t,i| t += other.accumulators[i]}
end

#averages(digits) ⇒ Object



132
133
134
# File 'lib/procview/stats.rb', line 132

def averages digits
    @accumulators.map{|a|a.ave.to_duration(digits)}
end

#counts(digits) ⇒ Object



129
130
131
# File 'lib/procview/stats.rb', line 129

def counts digits
    @accumulators.map{|a|a.n.to_si(digits)}
end

#deviations(digits) ⇒ Object



135
136
137
# File 'lib/procview/stats.rb', line 135

def deviations digits
    @accumulators.map{|a|a.stddev.to_duration(digits)}
end

#durations(digits) ⇒ Object



126
127
128
# File 'lib/procview/stats.rb', line 126

def durations digits
    @accumulators.map{|a|a.sum.to_duration(digits)}
end

#sumObject



120
121
122
# File 'lib/procview/stats.rb', line 120

def sum
    @accumulators.map{|m|m.sum}.reduce(:+)
end

#valuesObject



114
115
116
# File 'lib/procview/stats.rb', line 114

def values
    @accumulators.map{|a|a.sum}
end