我的程序中有内存泄漏。
在我的代码中,我在一个线程中执行一个长操作。在此期间,我显示“等待动画”。长时间操作消耗大量内存(~800 Mo)。当操作完成后,我希望释放内存,但事实并非如此,我不知道为什么。我尝试del
线程,以及deleteLater
函数。
请你帮个忙吗?
我如何调用线程:
self.predictor = Predictor(some arguments)
def whenDone():
# ...do some stuff...
self.predictor.deleteLater()
del self.predictor
self.predictor.finished.connect(whenDone)
self.predictor.start()
My Thread课程:
class Predictor(QtCore.QThread):
def __init__(self, some arguments):
QtCore.QThread.__init__(self)
def __del__(self):
"""Method to destroy the thread properly"""
self.wait()
def run(self):
# ...do some very long stuff...
答案 0 :(得分:0)
监控内存使用情况可能很棘手。现代操作系统可能会选择永远不会减少为进程分配的内存页(并在顶部等工具中计算)。这并不意味着应用程序泄漏 - 它可以释放内存,并在不进一步增加内存占用的情况下重新分配它。