Reputation: 181
I have been looking into Java memory management and various sections in the heap memory like eden, s0, s1, old gen and metaspace. I was using VisualGC for tracking how memory is filled among different sections of heap. I noticed there is a sharp increase in the amount of memory occupied in the metaspace area after first garbage collection.
Here's an image of the VisualGC representation:
I would like to understand what gets added to metaspace after the first gc. I did research but couldn't get answers. Any help here?
Upvotes: 1
Views: 527
Reputation: 719386
Metaspace is not "full". According to the captions, the limit for metaspace is 1.008G but you have 8.602M in there (out of a 9.125M initial allocation). That is about 1% of the limit.
Metaspace contains things related to classes; i.e. bytecodes, compiled native code, descriptors, statics. ~8M bytes is quite a modest amount of metaspace for a typical Java application that pulls in a few Java SE or 3rd-party library classes.
I would like to understand what gets added to metaspace after the first gc.
I suspect that it is just an accounting thing; i.e. the amount of memory used by metaspace only gets updated when the GC runs. If you notice, the 2 apparent changes in metaspace usage (after the start of recording) both coincide with a GC event.
Upvotes: 0