class MemstatCSV::Logger
Public Class Methods
new(options={})
click to toggle source
Calls superclass method
# File lib/memstat_csv.rb, line 10 def initialize(options={}) prepare(options) super do monitor end end
Private Instance Methods
headers()
click to toggle source
# File lib/memstat_csv.rb, line 38 def headers ['time (s)'] + Memstat::Proc::Status::FIELDS + Memstat::Proc::Status::FIELDS.map{|f| "#{f} (MB)"} end
monitor()
click to toggle source
# File lib/memstat_csv.rb, line 19 def monitor @csv=CSV.open(@path, 'wb') @csv.sync=true @csv << headers while true @memstat=Memstat::Proc::Status.new(pid: Process.pid) @csv << [(Time.now - @start_time).round(3)] + stats sleep @sleep_time end end
prepare(options={})
click to toggle source
# File lib/memstat_csv.rb, line 30 def prepare(options={}) @sleep_time = options[:sleep_time] || 1 basedir = File.expand_path(options[:basedir] || Dir.tmpdir) FileUtils.mkdir_p(basedir) unless File.directory?(basedir) @path = File.join(basedir, "memlog-#{Process.pid}.csv") @start_time=Time.now end
stats()
click to toggle source
# File lib/memstat_csv.rb, line 44 def stats Memstat::Proc::Status::FIELDS.map{ |f| @memstat.send(f) } + Memstat::Proc::Status::FIELDS.map{ |f| @memstat.send(f) / 1024**2 } end