軌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