轨2.3.14,红宝石1.8.7Ruby on Rails的内存泄漏
我有一个耙子任务:
Post.all.each do |post|
post.comments.each { |pc|
pc.delete
}
user = post.user
pc = user.comment.build(
:text => 'Test text',
......
)
result = pc.send_comment_http
if result.success?
pc.save!
else
puts error_message
end
end
邮政也100K行和任务运行50H alredy,行添加每3秒在分贝,它没有问题,但ps -ax | grep rake表示占用2 GB。什么可能是内存泄漏的问题?
是的,您是对的。 http://guides.rubyonrails.org/active_record_querying.html#retrieving-multiple-objects“但是随着表格大小的增加,这种方法变得越来越不切实际,因为User.all.each指示Active Record一次获取整个表格,每行构建一个模型对象,然后将整个模型对象数组保存在内存中。实际上,如果我们有大量记录,整个集合可能会超过可用内存量。“ – Nar 2013-03-18 11:00:57