JVM memory is cleared without any GC activity

I am currently running a multi-tasking JVM application (which includes groovy classes) and I have been observing some strange behavior.

I launch the application and update the groovy classes (clearing metaclass information correctly, etc.), I know there is no leak), so I know that there are several classes that can be compiled from permgen (usually I notice that permgen not going to look - I think it's just a complete GC that collects pergens, which is not unusual for this condition). The strange thing is that if I leave the application without activity, after about an hour there will be a sudden drop in memory usage (heap and perm, but most pronounced in permgene), but visualvm reports that GC / CPU activity did not occur.

Below is a screenshot of my registration in visualvm

enter image description here

My question is, how does such a large drop (~ 80 mb) occur in a pergene without registering GC activity? visualvm usually records GC / CPU activity well.

+4
source share
1 answer

Try installing the visualgc plugin to find out how gc works in this situation. I assume that a lot of new generation objects have been reset, but I can’t say that in the screenshot.

0
source

All Articles