나는 장시간 실행되는 대형 서버를 가지고 있으며, 몇 주 동안 메모리 사용이 꾸준히 증가했다.파이썬에서 수집 할 수없는 가비지를 만드는 방법은 무엇입니까?
일반적으로 아래에 지적했듯이 누수가 내 문제 일 가능성은 거의 없습니다. 그러나, 나는 누출이 있는지보고 싶기 때문에 계속할 일이별로 없습니다.
콘솔 출력을 얻는 것이 까다로 우며 gc.set_debug()
으로 실행되지 않습니다. 이것은 큰 문제는 아니지만, 쉽게 API를 추가하여 gc.collect()
을 실행 한 다음 gc.garbage
을 반복하고 HTTP를 통해 나에게 결과를 보냅니다.
내 문제는 로컬 시간 내 짧은 시간 내 gc.garbage
항상 비어 있습니다. 배포하기 전에 누수를 나열하는 코드를 테스트 할 수 없습니다.
쓰레기를 나열하는 코드를 테스트 할 수 있도록 수집 할 수없는 쓰레기를 만드는 간단한 방법이 있습니까?
Giovanni Bajo는 지난 달 EuroPython에서 메모리 누수를 디버깅하는 데 관한 훌륭한 토론을했습니다. 토크 비디오는 여기에 있습니다 : http://ep2011.europython.eu/conference/talks/debugging-and-profiling-techniques – grifaton
적어도 하나의 씨앗이 필요합니다 :( – Will