T .
T .

Reputation: 4944

Java 3D Memory Leak

I have a large scene graph in Java 3D consisting out of a Group which contains around 3500 Switches, each containing a Shape3D and a Group, the latter contains two more Shape3Ds.

The reason for this setup is that each of the 3500 Switches must be able to be either completely hidden or have either of its two children visible.

The problem occurs when I try to modify the geometry of the two Shape3Ds in the Group in a Switch. I have attempted the following:

I can't help but feel there is something basic about Java 3D memory management that I'm missing and that is common to all my attempts.

The speed of changing the geometry is not an issue, as it is a rare occurence. The memory problem, however, is serious.

Upvotes: 2

Views: 890

Answers (2)

Attach to your program with visualvm (available as jvisualvm binary in the JDK), and use the profiler to get an idea where your memory goes.

Upvotes: 1

richj
richj

Reputation: 7529

It's usually misleading to use tools that monitor memory at the operating system level to deduce memory leaks in a Java Virtual Machine. The JVM has its own ideas on when it is efficient to claim and reclaim memory.

If you could explain how you are observing the memory leak and why it is a serious problem then it might be easier to answer your question.

  • How are you measuring memory usage?
  • If you force a garbage collection and output the memory usage do you still see the leak?
  • Does the memory problem cause a java.lang.OutOfMemoryError ?

You might also be interested in this question: https://stackoverflow.com/questions/1716597/java-memory-leak-detection-tools

Upvotes: 2

Related Questions