我有一个程序,它加载和处理很多这样的图像:
for fn in filenames:
im = Image.open(fn)
get_some_basic_stats(im)
当处理多张图片时,Python进程最终会使用大量内存——远远超过任何一张图片所占用的内存。很明显,这最终会导致页面文件被抛弃。
我猜测(尽管我不确定),这是因为以前的图像占用了内存,直到它们被垃圾收集。
有没有一种方法可以强制丢弃它们?在PIL参考文献中,我找不到这样的方法。我想使用
del im
,但我理解这只是从本地范围内删除名称“im”,实际上相当于在循环顶部重新分配它。
weakref
模块。虽然它不直接回答您的问题,但使用它可能允许您绕过某些本来无法避免的代码行为。 - mac