Linux上具有process = -1内存泄漏的JavaXF 8 ProgressBar和ProgressIndicator

时间:2016-03-19 11:58:23

标签: linux javafx progress-bar javafx-8 progress-indicator

使用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实现?

1 个答案:

答案 0 :(得分:1)

记录此类问题的错误报告:

添加对此处提交的错误报告的引用,以便有人可以在遇到此问题时对其进行跟踪。

与此同时,不要在目标平台上使用不确定的进度。

请注意,无论出现什么问题,都是特定于环境的(我无法在OS X上复制它)。

另请注意,fedora不是certified system configuration,但希望不会阻止正在调查的错误报告。