使用ProgressBar或ProgressIndicator进行设置为-1(INDETERMINATE_PROGRESS)的简单JavaFX应用程序的Java进度逐渐使用越来越多的内存,直到它在几分钟内填充ram和swap。
我使用带有最新更新的Fedora 23 x86_64,kernel-4.4.5-300.fc23.x86_64和jdk1.8.0_74。 kernel-4.2.3-300.fc23.x86_64以及jdk1.8.0_73和jdk1.8.0_45都会出现同样的问题。
我在项目中遇到这个问题,即使在最简单的应用程序中也会出现这个问题:
package sample;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ProgressIndicator;
import javafx.stage.Stage;
public class ProgressBarMemoryLeak extends Application {
ProgressIndicator progress = new ProgressIndicator(-1);
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(progress, 100, 100));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
有没有办法克服这个问题?
也许我可以使用其他一些自定义ProgressBar实现?
答案 0 :(得分:1)
记录此类问题的错误报告:
添加对此处提交的错误报告的引用,以便有人可以在遇到此问题时对其进行跟踪。
与此同时,不要在目标平台上使用不确定的进度。
请注意,无论出现什么问题,都是特定于环境的(我无法在OS X上复制它)。
另请注意,fedora不是certified system configuration,但希望不会阻止正在调查的错误报告。