NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi all, My program dynamically creates displays and their content data, destroys them and creates new displays with new data. I realized that after each creation-destruction operation a portion of memory is not freed. I wrote a small example program attached to demonstrate what I mean. Please run it with "-verbose:gc" to get the needed memory information. You will see that after each button-press an amount of memory will not be freed. Because I'm working with huge datasets this behavior kills my system every time I try to create a new display after destroying the old one. So the loss of memory seems to be very real to me. I also recognized the same problem with the RubberBandBoxRendererJ3D. The renderer seems to allocate memory during dragging the mouse which is not completely freed by the garbage collector (although I'm not really sure if this memory is freed after a full GC). See this by running the RubberBandBoxRendererJ3D main with the above option. Why does the renderer allocate mem during dragging the mouse? Is there a part in the VisAD logic I don't understand or is the garbage collector fooling me? Thanks for each comment on this, Mathias
visad
archives: