我正在使用 Ruby 1.9.3p0。我编写的程序在运行超过 4 小时时会占用大量内存。我正在使用以下宝石:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'cgi'
require 'domainatrix'
以下代码运行了超过 10.000 次,我怀疑它可能会导致泄漏。
File.open('output.txt', 'a') do |file|
output.each_line do |item|
item = item.match(/^[^\s]+/)
item = item.to_s
if item = item.match(/[a-zA-Z0-9\-_]+\..+\.[a-zA-Z]+$/)
item = item.to_s
if item.length > 1
#puts "item: #{item}"
#item = item.to_s
item = Domainatrix.parse(item)
puts "subdomain: #{item.subdomain}"
if (item.domain == domain)
file.puts item.subdomain
puts item.subdomain
end
end
end
end
end
另一方面,我使用哈希表来存储每个链接。
您认为什么可能导致 Ruby 使用大量内存?
更新
另外我相信 File.open 应该在使用后关闭。这是真的吗?