gc.collect真的释放内存吗?

问题描述 投票:0回答:1

我正在尝试使用 gc.collect() 释放内存。但我不太明白它是如何工作的。例如:

在我运行del和gc之前,使用的内存是58g。运行后,使用的内存仍然是58。看起来没有释放任何内存。我感觉 gc 与关闭 python 并重新启动不同,后者实际上释放了内存。

所以我想知道如何实际释放内存以便我可以加载其他数据?

python memory garbage-collection free collect
1个回答
0
投票

根据您的操作系统,它可能不会收回已释放的内存。

您可以在 Linux 上尝试 malloc_trim

import ctypes

heavy_obj = create_heavy_obj()

# do some jobs

del heavy_obj
ctypes.CDLL("libc.so.6").malloc_trim(0) 
© www.soinside.com 2019 - 2024. All rights reserved.