meminfo/lib/meminfo.rb

19 lines
430 B
Ruby

require 'objspace'
require 'meminfo/ext'
# MemInfo gives a handful of methods allowing inspection of process memory use.
module MemInfo
module_function
class ProcessNotFound < StandardError; end
def rss(pid = Process.pid)
Integer(ps_rss(pid)) * 1024
rescue TypeError
raise ProcessNotFound, pid
end
private def ps_rss(pid)
`ps ax -o rss,pid`.each_line.grep(/^\s*(\d+)\s+#{pid}$/) { $1 }.first
end
end