我正在编写一个利用 JavaFX 的应用程序,该应用程序每 20-30 秒在屏幕上滚动和关闭大量图像内容。它意味着能够运行多个小时,每隔几分钟就会引入全新的内容并丢弃旧内容。我的系统上有 512Mb 的图形内存,几分钟后,所有这些内存都被 JavaFX 消耗掉了,无论我对 JavaFX 场景做什么,它都没有被释放。当节点离开场景时,我一直非常小心地丢弃节点,一次最多在内存中有 50-60 个图像节点。我真的需要能够硬释放支持这些图像的图形内存,但无法弄清楚如何实现这一点,因为 JavaFX 中的图像接口似乎非常高级。
我正在寻找类似 java.awt.image.Image 上的 flush() 方法:http: //docs.oracle.com/javase/7/docs/api/java/awt/Image.html#flush()
我在 Linux 上运行 java 7u13。
编辑:
我设法找到了一个潜在的解决方法(见下文),但也输入了 JavaFX JIRA 票证以请求上述功能: