Hi,<br><br>I have gotten my answers on IRC, but thought I would also ask here.&nbsp; Some background on my problem.<br>I have a need for a Java application to load a large amount of data.&nbsp; Larger than is normal, I can load it into the JVM my using the correct -Xmx values.&nbsp; The issues is that after I have loaded the data and performed whatever logic I need to I want to discard the memory that was used.&nbsp; The JVM will garbage collect the objects, but the JVM has allocated the largest amount of memory it could from the OS.&nbsp; What I want to occur is to have the JVM (eventually) release this memory back to the OS.&nbsp; It would not have to be immediate, but it should be release within a reasonable amount of time.&nbsp; From my research Sun's implementation does not ever release memory back to the OS.&nbsp; I guess for server side processes this is ok, but for a desktop application that needs to play well with other applications (not all Java) it is not ideal.
<br><br>The garbage collector can release the memory.&nbsp; What kind of algorithms would be good candidates for determining when and how much should be released?<br><br>Has anyone done and research on this topic?&nbsp; Or actually implemented this type of functionality in a branched version of Kaffe?&nbsp; Is there any JVM that currently does this?
<br><br>Michael<br>