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.
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
visad
archives: