检查正在运行的Ruby进程的最佳方法是什么

时间:2013-11-27 10:15:32

标签: ruby debugging

我遇到了一个疯狂的Ruby进程问题。

检查此类流程以进行调试的最佳方法是什么?

我发现了一篇关于using GDB的好文章来检查它。

你为此目的使用了什么,你有什么好的资源可供阅读吗?

3 个答案:

答案 0 :(得分:1)

也许一个好方法是从Tracer lib开始

一起使用
ruby -rtracer 

或     strace

带有-f标志的Linux上的

,跟随分支

truss  
在具有相同标志的BSD上

答案 1 :(得分:1)

没试过,但昨天看到这个新图书馆get_process_mem

答案 2 :(得分:0)

如果您对current_process_memory_size感兴趣,可以实施方法#memstats(感谢Avdi Grimm和他的rubytapas课程)。

require 'csv'

def memstats
  size = `ps -o size= #{$$}`.strip.to_i
  p "Size: #{size}"
end


memstats                        # => "Size: 5168"
CSV.open('simple.csv', headers: true) do |csv|
  visitors = csv.each           
  memstats                      # => "Size: 5170"
  p visitors.count{|v| v} # => 168

end
memstats                        # => "Size: 5168"

$$是ruby中的special variable,它允许您获取当前进程的数字进程ID

相关问题