我正在制作一个草图,它使用一些PGraphics对象作为缓冲区,我使用image()方法在屏幕上绘制这些对象。
我的问题是我注意到一个巨大的内存泄漏,99%是由于这个缓冲区没有被正确销毁。
有没有办法摆脱这个对象来释放一些内存?我查看了旧GLGS库的文档,并尝试了dispose()方法,但它看起来没有任何效果。
所以,在处理论坛发帖后,感谢@v. k.回答,我发现我的问题不是由错误处置PGraphics对象造成的。
存在内存泄漏,但在2.0b6版中已修复。
因此,如果您有内存泄漏并且您认为它是PGraphicsbug,请更新到2.0b8或更好地查看您的代码。
在处理论坛的这篇文章中看看,直到2.0b6 PImages才出现泄漏。他们建议在那里进行黑客攻击…
void draw()
{
PImage img = createImage(width, height, RGB);
image(img, 0, 0);
g.removeCache(img);// this is avoiding the leak
println(frameCount + " " + g.getCache(img));
}