class MemoryMonitor
Public Class Methods
new(pid)
click to toggle source
# File lib/memory_monitor.rb, line 3 def initialize pid @pid = pid @data = {} end
Public Instance Methods
after_request(url)
click to toggle source
# File lib/memory_monitor.rb, line 12 def after_request url @data[url] = memory - @data[url] end
before_request(url)
click to toggle source
# File lib/memory_monitor.rb, line 8 def before_request url @data[url] = memory end
report()
click to toggle source
# File lib/memory_monitor.rb, line 16 def report sorted = @data.sort_by { |url, memory| -memory } puts "\nMost memory used actions:" sorted.each_with_index do |(url, memory), index| puts "##{index + 1}\t#{memory/1024} KB\t=> #{url.to_s}" end end
Private Instance Methods
memory()
click to toggle source
# File lib/memory_monitor.rb, line 27 def memory mem = `ps -o rss #{@pid}`[/\d+/].to_i raise 'invalid PID' unless mem > 0 mem end