J'ai un script Ruby qui traite S3 enregistre quelque chose comme ceci:une fuite de mémoire lors de l'utilisation aws/gem s3 pour AWS :: S3 :: Exploitation forestière :: Log
AWS::S3::Bucket.find(data_bucket).logs.each do |s3log|
s3log.lines.each do |line|
# accumulate stuff
end
end
Cependant, le joyau SSFE/s3 l'accesseur: lines mémorise les données. La mémoire grandit alors que je traite chaque fichier. En plus du piratage de la gemme, de l'encapsulation des fichiers lus chaque fois, et/ou de l'exécution fréquente du script, comment puis-je éviter gracieusement un processus ruby qui pourrait atteindre plusieurs gigaoctets? Est-ce que je manque un tour de gestion de la mémoire?
Pour l'instant, je vais exécuter le travail fréquemment, et avec les logs (nom,: max_keys => 100), mais je suis curieux de savoir s'il existe un moyen de libérer les fichiers journaux chargés en mémoire. L'approche: max_keys impose une limite de débit que je dois surveiller. – potatoihave