私はJavaFXで画像スライドショーアプリケーションに取り組んでおり、しばらくするとJavaがクラッシュし、空きメモリエラーが発生しませんでした。インターフェイスコードには次のものがあります。
image = new ImageView();
Group root = new Group(image);
imageScene = new Scene(root, height, width);
primaryStage.setScene(imageScene);
バックグラウンドスレッドで、画像ビューの画像ソースを設定しました:
...
Map<String, Image> imagesMap = new HashMap<>();
...
// Slide thread
if (!imagesMap.containsKey(item.File)) {
Image image = new Image(item.File);
imagesMap.put(item.File, image);
}
Image i = imagesMap.get(item.File);
image.setImage(i);
アプリの実行中 (パラメータ: -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Xmx256m) で、Java プロセスに割り当てられたメモリが常に増加しています...