2017-03-09 6 views
0

私は、3Dオブジェクトを表示する3Dサブセナを持つjavafxアプリケーションを持っています。インポート後、オブジェクトはTrianglemeshに保存され、Meshviewのシーンに追加されます。 私が気づいたのは、100MB + 3Dファイルをインポートしたときに、メモリ使用量が予想どおり大きくなったことです。ただし、メッシュビューと三角形メッシュを削除すると、メモリ使用量が大幅に低下することはありません。メッシュを削除した後にJavaFXメモリが解放されない

visualvmを使用して、あまり使われていない使用済みヒープであることを確認しました。 memory issue 最初のポイントは、インポート後にシーンに300mbの3Dファイルが追加される点です。 2番目のポイントは、メッシュビューがシーンから削除され、GCによって収集される場所です。

IntelliJのメモリでさらに調査した結果、meshviewとtrianglemeshへの参照がなくなったことが確認されました。しかし、非常に多数のVector3fとMeshVertexオブジェクトがまだ周囲にありました。これらの参照は、MeshTmpView classのインスタンスによって保持されます

これはjavafx内部クラスですから、これらのキャッシュをクリアする方法はありますか?

+0

これを確認したJavaバージョンは? – Fairoz

+0

Javaバージョン1.8.0_92 – r33tnup

答えて

0

すでに存在する問題https://bugs.openjdk.java.net/browse/JDK-8089605が「メモリとCPU使用率が高くなるのを避けるために、動的メッシュの新しいユーザー定義の法線形式を使用する必要があります」という理由で修正されませんでした。あなたが直面している問題と同じ問題であるかどうかを報告してください。テストケースを親切に共有しないと、私たちはより良いeveluateに役立ちます。

関連する問題