窗口大小调整操作的JavaFX内存消耗

窗口大小调整操作的JavaFX内存消耗,java,javafx,Java,Javafx,我有代码,使简单的窗口没有任何功能。 程序启动后:process explorer说它消耗了约50Mb的ram。 但当用户开始通过拖动边框来调整窗口大小时,消耗量会迅速增加(高达500Mb)。停止调整尺寸后,消耗量不会减少 这种行为的原因是什么 // sample import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javaf

我有代码,使简单的窗口没有任何功能。 程序启动后:process explorer说它消耗了约50Mb的ram。 但当用户开始通过拖动边框来调整窗口大小时,消耗量会迅速增加(高达500Mb)。停止调整尺寸后,消耗量不会减少

这种行为的原因是什么

// sample
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class MainApp extends Application{
    @Override
    public void start(Stage stage) throws Exception {
        BorderPane borderPane = new BorderPane();
        Scene scene = new Scene(borderPane, 300, 300);

        stage.setTitle("Leak");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

欢迎来到java世界,垃圾收集在java世界中完成。至少在使用默认值的所有情况下。调整窗口的大小会引发一些事件,javafx上有很多事情,所以不用太担心。毫无疑问,您可以启动java的探查器,为了好玩,您可以使用调试查看所有正在进行的奇特工作。

您可以通过请求垃圾收集来确认它是否泄漏。例如,在UI中添加一个按钮,当单击该按钮时,该按钮将运行
System.gc()
,然后查看内存消耗情况。或者,使用VisualVM在运行的VM上请求垃圾收集。VisualVM可能作为Java发行版的一部分安装在您的系统上。