All,
I have a Java Memory Process which starts to take more and more memory with time. To put a Cap on the heap space usage I set -Xmx option to 512M. Slowly over a period of time the Process memory usage reached 2GB.
I have analyzed the code for possible memory leaks using various tools like MAT and YOURKIT and found no such possible leaks in the Java code. The code also makes use of One Native function which looks leak free.
I have the following questions :
- Is it possible to cause an upper limit on the total memory a Java Process can use ?
- What are the other memory usages of the JVM apart from the Heap ?
- Does Linux work on 'Working set' memory model of Windows where a process when put into background releases it's memory.
- Even after using -Xmx option with 512M shouldn't the JVM throw an 'Out Of memory' if the heap usage increases. This makes me suspect that the memory is being leaked by something else apart from the Heap space. From the memory dumps it seems that the Heap Memory is not increasing.
thanks for the answer.