Кто нибудь делал программу на JavaFX? Заметил одну неприятную особенность, когда начинаешь менять размеры окна программы (Stage), то программа начинает не хило жрать память, может доходить до 900 мегабайт если очень много хаотично менять размер. Вызов сборщика мусора ничего не даёт, так как он не вызывается по ходу. Если даже Stage закрывается, то все равно висит в пямяти... На иностранных формумах нашел подобную проблему, и никто не знает как вручную чистить память хотя бы при закрытии Stage. Может быть кто-то из админов, исходя из своего опыта, знает как чистить? Единственное, что мне пришло в голову, это исользовать Thread.Sleep(50) в перехватчике событий мыши -setOnMouseDragged, это влияет на плавность, совсем немгого, но жрет прилично меньше оперативки. Программа visualVM показывает, что память занята int[] и byte[]. Картинку прикладываю. root.setOnMousePressed(new EventHandler() { public void handle(MouseEvent event) { if (event.getX() > primaryStage.getWidth() - 20 && event.getX() < primaryStage.getWidth() && event.getY() > primaryStage.getHeight() - 20 && event.getY() < primaryStage.getHeight()) { resizebottom = true; dx = primaryStage.getWidth() - event.getX(); dy = primaryStage.getHeight() - event.getY(); } else { resizebottom = false; xOffset = event.getSceneX(); yOffset = event.getSceneY(); } System.gc(); } }); root.setOnMouseDragged(new EventHandler() { public void handle(MouseEvent event) { if (!resizebottom) { primaryStage.setX(event.getScreenX() - xOffset); primaryStage.setY(event.getScreenY() - yOffset); } else { try { Thread.sleep(50); X = event.getX() + dx; Y = event.getY() + dy; // условие, чтобы нельзя было уменьшить окно до сколько угодно if(X>300){ primaryStage.setWidth(X); } if(Y>250){ primaryStage.setHeight(Y); } //InterruptedException } catch ( Exception e) { e.printStackTrace(); } } System.gc(); } }); Обжорство программы на JavaFX. - 1