首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 3D内存泄漏

Java 3D内存泄漏
EN

Stack Overflow用户
提问于 2010-03-05 09:16:14
回答 2查看 870关注 0票数 2

我有一个Java3D的大场景图,由一个包含大约3500个开关的组组成,每个开关包含一个Shape3D和一个组,后者包含另外两个Shape3Ds。

这种设置的原因是,每个3500开关必须能够完全隐藏或使其两个子交换机中的任何一个可见。

当我试图在交换机中修改组中两个Shape3Ds的几何结构时,就会出现这个问题。我尝试了以下几点:

  • Change组到BranchGroup.当几何需要改变时,我分离BranchGroup并创建一个新的几何图形,用更新的几何图形替换它。泄露了大量的记忆。例如,初始内存使用量将在100 MB左右。几何学的一个变化,后来它是大约400 MB.
  • Make的几何可编辑。当几何需要改变时,我直接编辑它。泄露了大量的记忆。类似于above.
  • Make,几何是可编辑的,但通过引用。当几何需要改变时,我称之为updateData(.)使用适当的GeometryUpdater,然后执行它的任务。当需要改变几何形状时,我分离出整个场景图,用更新的几何图形从零开始重新创建,并附加新的场景图。内存泄漏。

我情不自禁地感觉到,Java3D内存管理有一些基本的东西,我错过了,这是我所有尝试的共同之处。

改变几何学的速度不是一个问题,因为这是一个罕见的发生。然而,记忆问题是严重的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-05 09:40:07

使用在操作系统级别监视内存的工具来推断Java虚拟机中的内存泄漏通常是误导的。JVM对于何时能够有效地获取和回收内存有自己的想法。

如果你能解释你是如何观察到内存泄漏的,为什么它是一个严重的问题,那么回答你的问题可能会更容易。

  • ,您是如何测量内存使用情况的?
  • ,如果强制进行垃圾收集并输出内存使用情况,您还会看到内存的泄漏吗?
  • 内存问题是否导致java.lang.OutOfMemoryError ?

您也可能对这个问题感兴趣:https://stackoverflow.com/questions/1716597/java-memory-leak-detection-tools

票数 2
EN

Stack Overflow用户

发布于 2010-03-05 09:47:22

使用visualvm (在JDK中可以作为jvisualvm二进制文件)附加到您的程序中,并使用分析器来了解内存的去处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2385592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档