ファイルからデータを読み取り、シーンにレンダリングする JavaFX(8) 3D アプリケーションを作成しました。
オブジェクトのレンダリングには、次を使用します。
graphicsContainer.getChildren().add(some3dObject);
レンダリングを無効にするためにこの行をコメント アウトすると、メモリ リークはまったく発生しません。
しかし、この行が実行されると、アプリケーションはますます多くのメモリを消費します。私は毎秒30フレームで、毎秒メモリ消費量が約50MB増加しています。
これはもちろん、私が使用するフレーム間ではありますが:
graphicsContainer.getChildren().clear();
ローカルに割り当てた 3D オブジェクトはgraphicsContainer
、静的/グローバル スコープには保存されません。これらは の子としてのみ保存graphicsContainer
され、すべてのフレームで消去されます。
の子を削除するたびに、JavaFX-3D エンジンの何かが私の作業を実際にクリアしていないようgraphicsContainer
です。
JavaFX 3D エンジンに過去の 3D オブジェクトとレンダリングを解放させる方法はありますか?