python默认dict内存

2024-09-29 21:22:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我不确定是否是内存泄漏,但看起来像是这样,我在这里找不到解决方法。 我无法粘贴完整的代码,但以下是泄漏的部分:

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(这是一个具有浮动值的列表字典)增加了内存使用量,但在我处理完类对象之后再也不会释放它。我尝试过编写一个简单的析构函数,比如调用方法

^{pr2}$

在完成我的跑步之前,但这没有帮助。在

任何想法都是值得赞赏的。在


Tags: 方法内存代码inselffordatalen
1条回答
网友
1楼 · 发布于 2024-09-29 21:22:29

Python何时将未使用的内存提供给Python脚本使用,以及何时将其返回给OS之间是有区别的。前者在没有对象引用时立即发生(假设是CPython),后者可能在Python解释器退出之前不会发生,具体取决于分配的对象类型。这是正常和预期的行为。在

相关问题 更多 >

    热门问题