我有一个消耗大量内存的Ruby进程,我想运行一个shell命令来找出我的Ruby进程正在使用多少内存。如果我进行分叉,那么所有的内存都将复制到新进程中,而我的机器无法支持这么多的内存使用。有没有办法:
[而不是分叉,您可能想打开文件/proc/PID/status
,其中PID
是您的进程的进程ID,在Ruby中是$$
变量,并阅读标有VmSize
的行:
File.open("/proc/#{$$}/status").each { |line|
if line =~ /VmSize/
puts line
end
}
在IRB中运行此功能可为我提供此功能:
irb(main):003:0> File.open("/proc/#{$$}/status").each { |line|
irb(main):004:1* if line =~ /VmSize/
irb(main):005:2> puts line
irb(main):006:2> end
irb(main):007:1> }
VmSize: 138972 kB