我有一个程序,加载和处理这种形式的大量的图片,:强行丢弃Python图像库的图像回收内存
for fn in filenames:
im = Image.open(fn)
get_some_basic_stats(im)
当上有许多图像运行Python进程结束使用大量的内存 - 远远超过任何一个图像应该考虑的。不用说,这最终会导致页面文件抖动。
我认为(虽然我不是100%确定,显然),这是因为之前的图像占用内存直到它们被垃圾收集。
有没有办法强行丢弃它们?我无法在PIL reference中找到一个。我想到了使用del im
,但我明白这只是简单地从本地范围中删除名称'im',并且有效地将其重新分配到循环的顶部。
附注:您可能希望检查['weakref'模块](http://docs.python.org/library/weakref.html)。它不是直接回答你的问题,但使用它可能会让你绕过某些不可避免的代码行为。 – mac 2011-12-29 08:53:58