我正在制作一个草图,它使用一些 PGraphics 对象作为我使用 image() 方法在屏幕上绘制的缓冲区。
我的问题是我注意到一个巨大的内存泄漏,99% 由于这个缓冲区没有被正确销毁。
有没有办法摆脱这些对象以释放一些内存?我查看了旧 GLGS 库的文档,并尝试了 dispose() 方法,但它看起来没有任何效果。
我正在制作一个草图,它使用一些 PGraphics 对象作为我使用 image() 方法在屏幕上绘制的缓冲区。
我的问题是我注意到一个巨大的内存泄漏,99% 由于这个缓冲区没有被正确销毁。
有没有办法摆脱这些对象以释放一些内存?我查看了旧 GLGS 库的文档,并尝试了 dispose() 方法,但它看起来没有任何效果。
在处理论坛中查看这篇帖子,看起来直到 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));
}
因此,在处理论坛上发帖后,感谢@vk 的回答,我发现我的问题不是由错误处理 PGraphics 对象造成的。
它存在内存泄漏,但在 2.0b6 版中已修复。
因此,如果您有内存泄漏并且您认为这是一个 PGraphics 错误,请更新到 2.0b8 或更好地查看您的代码。