私は、3Dオブジェクトを表示する3Dサブセナを持つjavafxアプリケーションを持っています。インポート後、オブジェクトはTrianglemeshに保存され、Meshviewのシーンに追加されます。 私が気づいたのは、100MB + 3Dファイルをインポートしたときに、メモリ使用量が予想どおり大きくなったことです。ただし、メッシュビューと三角形メッシュを削除すると、メモリ使用量が大幅に低下することはありません。メッシュを削除した後にJavaFXメモリが解放されない
visualvmを使用して、あまり使われていない使用済みヒープであることを確認しました。 最初のポイントは、インポート後にシーンに300mbの3Dファイルが追加される点です。 2番目のポイントは、メッシュビューがシーンから削除され、GCによって収集される場所です。
IntelliJのメモリでさらに調査した結果、meshviewとtrianglemeshへの参照がなくなったことが確認されました。しかし、非常に多数のVector3fとMeshVertexオブジェクトがまだ周囲にありました。これらの参照は、MeshTmpView classのインスタンスによって保持されます
これはjavafx内部クラスですから、これらのキャッシュをクリアする方法はありますか?
これを確認したJavaバージョンは? – Fairoz
Javaバージョン1.8.0_92 – r33tnup