【发布时间】:2013-02-21 13:48:22
【问题描述】:
我正在编写一个利用 JavaFX 的应用程序,该应用程序每隔 20-30 秒就会在屏幕上上下滚动大量图像内容。它意味着能够运行多个小时,每隔几分钟就会引入全新的内容并丢弃旧内容。我的系统上有 512Mb 的图形内存,几分钟后,所有这些内存都被 JavaFX 消耗了,无论我如何处理我的 JavaFX 场景,它都没有被释放。当节点离开场景时,我一直非常小心地丢弃节点,一次最多在内存中有 50-60 个图像节点。我真的需要能够硬释放支持这些图像的图形内存,但无法弄清楚如何实现这一点,因为 JavaFX 中的图像接口似乎非常高级。 JavaFX 将继续正常运行,但由于资源有限,其他图形繁重的应用程序将无法加载。
我正在寻找类似 java.awt.image.Image 上的 flush() 方法: http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html#flush()
我在 Linux 上运行 java 7u13。
编辑:
我设法找到了一个潜在的解决方法(见下文),但也输入了 JavaFX JIRA 票证以请求上述功能:
RT-28661 Add explicit access to a native resource cleanup function on nodes.
【问题讨论】: