【发布时间】:2017-03-09 08:21:25
【问题描述】:
我有一个带有 3D 子场景的 javafx 应用程序,它显示 3D 对象。导入后,对象将保存在 Trianglemesh 中并添加到 Meshview 中的场景中。 我注意到当我导入一个 100mb+ 3D 文件时,内存使用量按预期增加了很多,但是当我删除网格视图和三角形网格时,内存使用量并没有下降太多。
我使用了 visualvm 来确认它是使用过的堆,它不会下降太多。 第一点是导入后添加到场景中的 300mb 3D 文件。第二点是meshview从场景中移除并被GC收集的地方。
在对 IntelliJ 的内存进行更多调查后,我确认对网格视图和三角形网格的引用已经消失。然而大量的 Vector3f 和 MeshVertex 对象仍然存在。这些引用由 MeshTmpView class 的实例持有
既然是javafx内部类,有没有办法清除这些缓存?
【问题讨论】:
-
您在哪个 Java 版本上验证了这一点?
-
Java 版本 1.8.0_92
标签: memory-management javafx garbage-collection