嗨,下面的代碼:的Ruby/Rails的內存使用情況
def process(batch_size=1000)
claim_numbers.each_slice(batch_size) do |numbers_batch|
claims = Claim.find(:all, :conditions => ["claim_number in (?)", numbers_batch])
# do something with claims
end
end
在我的Rails的車型之一,我處理了很多claim_numbers
,我爲了不模擬find_in_batches
方法加載大量的記錄到內存中,然後我的問題是:就內存而言,在每次迭代中claims
變量會發生什麼? Ruby的GC什麼時候釋放這部分內存?
任何幫助和提示,將不勝感激,在此先感謝!
更新:使用Ruby 1.8.7-P72
謝謝!得檢查那篇博文!你使用什麼技術/工具來監控你的應用程序? – jpemberthy 2010-09-16 12:56:45
我們之前已經轉向了JRuby,現在這允許我們使用一些不錯的Java監視工具(如JConsole和VisualGC)。轉移到JRuby也使我們能夠更好地調整GC設置。 – xinit 2010-09-17 15:54:52