我正在尝试使用 gc.collect() 释放内存。但我不太明白它是如何工作的。例如:
在我运行del和gc之前,使用的内存是58g。运行后,使用的内存仍然是58。看起来没有释放任何内存。我感觉 gc 与关闭 python 并重新启动不同,后者实际上释放了内存。
所以我想知道如何实际释放内存以便我可以加载其他数据?
根据您的操作系统,它可能不会收回已释放的内存。
您可以在 Linux 上尝试 malloc_trim:
import ctypes
heavy_obj = create_heavy_obj()
# do some jobs
del heavy_obj
ctypes.CDLL("libc.so.6").malloc_trim(0)