0
这里机械化内存泄漏是一个示例脚本再现问题尽管历史大小设置为0和清除历史
require 'mechanize'
agent = Mechanize.new
agent.history.max_size = 0
5000.times do |i|
agent.get('http://www.yahoo.com')
agent.history.clear
p `ps -o rss -p #{$$}`.strip.split.last.to_i * 1024 # Prints out memory usage of the ruby process
end
我这样做既agent.history.max_size
和agent.history.clear
但似乎内存使用与每个循环增加。
以下是输出显示增加的内存使用情况(从48MB开始,每个循环增加1-2MB)。
48603136
50274304
51470336
53260288
54984704
55836672
56799232
57884672
59150336
60358656
61349888
62193664
...
如何获得机械化来停止内存泄漏?
如果您在每次迭代中创建新代理而不是多次重复使用相同代理,行为是否会改变? – spickermann 2014-11-05 10:02:29
没有变化,仍然看到与上述内存大小相同的增加。 – 2014-11-05 10:13:13