Unnnnhuh, automatic memory management and recovery, long espoused as one
great feature of Java, is in practical application, proving to be the bain
of us Java programmers. What good is automatic garbage collection if you
can't depend on the garbage collector to see your garbage and pick it up in
any reasonable amout of time even when you call him directly. This is fine
as long as you are working with small data nuggets, but when working with
big chunks of data, memory quickly bloats to rediculous sizes.

-----Original Message-----
From: Discussion list for Java 3D API
[mailto:[EMAIL PROTECTED]]On Behalf Of David
Sent: Wednesday, September 06, 2000 7:16 AM
To: [EMAIL PROTECTED]
Subject: [JAVA3D] Memory Leak?


It looks like my shapes are not being released to garbage collection after a
detach:

TRACE 6671:
 javax.media.j3d.Shape3DRetained.setLive(Shape3DRetained.java:1102)
 javax.media.j3d.GroupRetained.doSetLive(GroupRetained.java:1475)
 javax.media.j3d.BranchGroupRetained.setLive(BranchGroupRetained.java:101)
 javax.media.j3d.GroupRetained.checkSetLive(GroupRetained.java:1009)
 javax.media.j3d.GroupRetained.checkSetLive(GroupRetained.java:869)
 javax.media.j3d.GroupRetained.doAddChild(GroupRetained.java:431)


SITES BEGIN (ordered by live bytes) Wed Sep 06 07:02:48 2000
          percent         live       alloc'ed  stack class
 rank   self  accum    bytes objs   bytes objs trace name
    1  7.01%  7.01%   591892  157  591892  157     1 [I
    2  3.33% 10.34%   281304 3907  281304 3907  6671
javax.media.j3d.Shape3DRetained


Notice that there are as may live objects as were ever alocated?  This means
that never, in the course of my run, did one Shape3DRetained get released.
I am dropping my reference to them after detaching, so I would expect them
to go away.  I know there is a bug with Shapes not being released with
shared Appearance (4182781 Shape3D memory not freed when unassigned if
associated appearance object isalive ).  But I assumed that was a shared
Appearance() object, not a sub object.  All my shapes share material and
texture objects, which is necessary and correct that they do so.   Don't I
just detach branchgroups and let them die? or do I need to make them
"unalive" somehow?

By the way... when is the next version of Java3d going to be made available?

Dave Yazel

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to