Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

Re: larger data set size

Hi John,

> Something I've noticed, with regard to Java3D, that's particularly
> vexing is that it doesn't seem to to garbage disposal very effectively,
> if at all.  If I take one data set, and then start to visualize in
> different ways, more and more memory is steadily consumed, never to be
> made available again.  Is this just a WinNT issue, or is it the case on
> other platforms as well?  IS this something the new Java3D is supposed
> to fix?
> 
> along these same lines, i have a little app i wrote that reads ASCII
> data files, builds a VisAD data structure with the data and writes out
> netCDF files (for use with the SpreadSheet).  these netCDF files are
> signifigantly larger than the ASCII!  2.6 Mb of ASCII data becomes a 4.6
> Mb netCDF file.  is this expected, or is it likely i'm doing something
> wrong?

Are you using Java's Output Object Serialization to do this?  I ran into a
very similar problem with Java's ObjectOutputStream. If you are invoking:

ObjectOutputStream.writeObject() 

for each one of your objects (which I was doing for all 128^3 (or 64^3) of
our cube objects) then something that looks like a memory leak will
appear.  Each call to writeObject() will actually save a reference to that
object.  This is for case you are writing something that looks like a
graph, the serialization object may then save the entire graph with
dependencies.  If you're not writing a graph (no dependencies or pointers
necessary) than you can invoke:

ObjectOutputStream.reset()

and that will free up all those pointers taking up all that memory.
This is all documented in a bug report at www.javasoft.com but I
can't seem to bring up the URL again at this moment.

However, there's a catch, at least there was with my program on Linux. I
was finding that the size of the output file actually changed depending on
how many times I invoked the reset() method.  The more often it was
called, the bigger my file size got, in some cases 3 times larger.  So I
just call the reset() method as seldom as I can.

-cheers, bob

Robert S Laramee        tel:    (603) 868-1361
9 Woodman Ave, #316     office: (603) 862-0350
Durham, NH 03828        URL:   http://www.cs.unh.edu/~rlaramee


  • 2000 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: