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