删除对象在python中似乎不能释放其内存

2024-04-27 00:00:53 发布

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

我正在运行一个脚本,它在操作多个大型数据帧对象时占用了大量内存。当我不断得到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

因此删除数据帧似乎不会改变内存使用情况。一旦解释器知道数据帧不再在我的代码中引用,它是否会被抢先删除,或者我删除它是错的?你知道吗


Tags: 数据对象内存代码formatdfgetuse