我的代码可以创建没有任何功能的简单窗口。 程序启动后:进程资源管理器说它消耗了大约50Mb内存。 但是当用户通过拖动边框开始调整窗口大小时,消耗会迅速增长(最高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);
}
}
答案 0 :(得分:0)
欢迎来到垃圾收集完成的java世界。至少在您使用默认值的所有情况下。调整窗口大小会触发一些事件,javafx上会有很多事情发生,所以不要太担心它。有疑问,你可以启动java的探查器,为了好玩,你可以看一下使用调试的所有花哨的东西。