我正在运行一个脚本,当它在多个大型DataFrame对象上运行时会占用大量内存。由于我不断获得MemoryError
例外,我认为我需要在运行时更好地清理内存,因为从技术上讲,应该有足够的内存来容纳所有相关对象。但是,它似乎没有起作用。
在我的代码的以下小节中:
print("Before deleting df: {}".format(get_mem_use()))
del df
print("After deleting df: {}".format(get_mem_use()))
输出结果为:
Before deleting df: 185323520
After deleting df: 185323520
其中:
def get_mem_use():
"""Get the currently used rss memory."""
process = psutil.Process(os.getpid())
return process.memory_info().rss
因此,删除数据帧似乎不会改变内存使用情况。一旦它知道我的代码中不再引用数据帧,或者我删除它错了,它是否会被解释器先发制人地删除?