JavaFX图像加载内存泄漏?

标签 java image javafx

我正在尝试构建一个“手势绘图”应用程序,它基本上只是按设定间隔播放图像的幻灯片。我注意到,每当我加载小于 1MB 的新图像时,每次加载新图像时,我的应用程序的内存使用量都会增加超过 20MB。

我尝试了两种方法,第一种是使用自定义“ImagePane” - 为了能够使用窗口调整图像大小 - 将给定图像加载到其样式表 (-fx-background-image) 中,第二种方法是使用使用 setImage() 方法的常规 ImageView。在这两种情况下,我都注意到内存显着增加。

现在我的问题是:这是正常行为、已知的内存泄漏还是我做错了什么?如果需要的话,我可以提供整个代码,但目前这只是一个很大的原型(prototype)困惑......

最佳答案

这是正常行为。当您加载新图像时,每个像素将消耗大约 4 个字节。只要您不意外地保留对不再使用的图像的引用,它们就会有资格以正常方式进行垃圾收集。您几乎无法控制垃圾收集器何时回收内存,您应该将其留给 JVM。

关于JavaFX图像加载内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39573550/

相关文章:

java - 无法读取 Java 中的文本文件。

Java简单日期格式: Pattern - ParseException

image - 查看图像时执行bat文件

java - 将数据从 map 添加到 Java FX ListView?

java - JSONValue 无法转换为 JSONObject

html - 我的 Photoshop 图像不会显示在我的网站上

jquery - 使用jquery在一个圆圈中旋转多个图像

css - 如何在运行时为 javaFX ProgressBar 设置特定的 css 值?

TextFlow 中的 JavaFX 文本忽略 StyleClass?

java - selenium webdriver 中的空指针异常 - TestNG - PageFactory