메모리 누수가 하나 보이지만 해결 방법을 찾을 수없는 경우 잘 모르겠습니다. 나는 전체 코드를 붙여 그러나 여기 누출 부분입니다 수 없습니다파이썬 기본 dict 메모리 누수가
self.dctSpreads = defaultdict(list)
lstMat = ['2Y','3Y','4Y','5Y','6Y','7Y','8Y','9Y','10Y','12Y','15Y','20Y','25Y','30Y']
lstSpreads = ['A','B','C','D','E']
def __GetSpreadMDValues__(self):
lstSpreadRIC = []
lstSpreadVal = []
#Construct proper RICs to extract the data
for i in range(0, len(self.lstSpreads)):
for j in range(0, len(self.lstMat)):
lstSpreadRIC.append(self.lstMat[j])
#get market data
lstSpreadVal = self.__GetListDataSnaps__('FIELD1', lstCSASpreadRIC)
self.dctSpreads[self.lstSpreads[i]] = lstCSASpreadVal
lstSpreadRIC = []
lstSpreadVal = []
문제는 내가 수행 한 후 메모리 사용량을 증가 없지만 결코 그것을 해제 (목록의 사전 부동 값입니다) self.dctSpreads
는 작업이다 클래스 개체. 나는 메서드를 호출하는 것처럼 간단한 소멸자를 작성하려고 시도했다.
def Destructor(self):
gc.collect()
내 실행이 완료되기 전에는 도움이되지 않았다.
의견을 보내 주시면 감사하겠습니다.
파이썬 특수 메서드 이름과 값에'__' 이중 밑줄 이름 만 사용하고, 임의로 자체를 발명하지 않습니다. private 메소드는'__'을 접미사로 사용하지 않고 접미사로 사용합니다. –
클래스 개체로 "완료"되었습니까? – Blender
답장을위한 thnx Martijn, 이것은 코드의 일부일 뿐이며 클래스에 대해 private 인 __ 여기 표시된 메소드입니다. – ilyaw77