class RailsMemoryBloat::Request
Attributes
previous[RW]
process[RW]
record_count[RW]
records[RW]
resource[RW]
rss[RW]
user_id[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/rails_memory_bloat/request.rb, line 7 def self.new(*args) o = super(*args) (@@instances << o) && o end
new(log_string)
click to toggle source
# File lib/rails_memory_bloat/request.rb, line 12 def initialize(log_string) unless log_string =~ /PID: (\d+) Project: (\w+) User: (\w+) Mem: (\d+)/ abort("invalid line: #{log_string.strip}") end pid, @project, @user_id, @rss = [$1, $2, $3, $4].map(&:to_i) @process = RailsMemoryBloat::RailsProcess.find(pid) unless log_string =~ /Records: \(((\d+)( \| \w+: \d+)*)\); (.+)/ abort("invalid line: #{log_string.strip}") end @records, @record_count, @resource = $1, $2.to_i, RailsMemoryBloat::Resource.find($4) @records = @records.split(' | ')[1..-1] process.add_request(self) end
sort(*args, &block)
click to toggle source
# File lib/rails_memory_bloat/request.rb, line 30 def self.sort(*args, &block) @@instances.sort(*args, &block) end
Public Instance Methods
bloat()
click to toggle source
# File lib/rails_memory_bloat/request.rb, line 34 def bloat rss - (previous ? previous.rss : rss) end
memory_used()
click to toggle source
# File lib/rails_memory_bloat/request.rb, line 38 def memory_used [rss - process.baseline_rss, 0].max end