我有一个耗费大量内存的Ruby进程,我想运行一个shell命令来找出我的Ruby进程使用了多少内存。如果我fork,所有内存都会被复制到新进程,而我的盒子不能支持这么大的内存使用量。有没有办法:
答案 0 :(得分:1)
您可能需要打开文件/ 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