Hey les gars, dans le code suivant:utilisation de la mémoire 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
Dans l'un de mes modèles Rails Je traitement beaucoup de claim_numbers
, je simuler une méthode find_in_batches
afin de ne pas charger beaucoup d'enregistrements en mémoire, alors ma question est: en termes de mémoire, que se passe-t-il avec la variable claims
dans chaque itération? Quand le GC du Ruby libère-t-il cette partie de la mémoire?
Toute aide et conseils seraient appréciés, merci d'avance!
Mise à jour: utilisant Ruby 1.8.7-p72
Merci! Je dois vérifier ce blog! Quelles techniques/outils utilisez-vous pour surveiller votre application? – jpemberthy
Nous sommes passés à JRuby il y a quelques temps et cela nous permet maintenant d'utiliser de jolis outils de monitoring Java (comme JConsole et VisualGC). Le passage à JRuby nous a également permis de mieux ajuster les paramètres du GC. – xinit