メモリリークかどうかはわかりませんが、メモリリークのように見え、ここで解決策を見つけることができません. 完全なコードを貼り付けることはできませんが、漏れている部分は次のとおりです。
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()
私の走りを終える前に、それは助けにはなりませんでした。
どんな考えでも大歓迎です。