我试图找出为什么我的GIMP插件在执行期间使用越来越多的RAM。我写了一个简单的测试插件来检查通过pdb.gimp_image_delete
删除图像是否按预期工作:
image_id = pdb.gimp_image_new(500, 500, RGB)
while True:
duplicate = pdb.gimp_image_duplicate(image_id)
pdb.gimp_image_delete(image_id)
image_id = duplicate
print pdb.gimp_image_list()
图像列表看起来很好 - 在每次迭代中pdb.gimp_image_list
都显示只有一个图像,但RAM使用率迅速增长。执行1分钟后它接近1GB!它看起来像gimp_image_delete
以某种方式将图像留在内存中或其他东西导致这种情况。任何想法如何解决这个问题?我认为它可能是gimp_image_duplicate
的错误,但用duplicate = pdb.gimp_image_duplicate(image_id)
替换image_id = pdb.gimp_image_new(500, 500, RGB)
会产生相同的效果。我也试过了gimp.delete
函数。