较小的垃圾回收后,JVM元空间将被填充

时间:2018-11-23 17:36:14

标签: java garbage-collection heap-memory visualvm metaspace

我一直在研究Java内存管理以及堆内存中的各个部分,例如eden,s0,s1,old gen和metaspace。我使用VisualGC跟踪堆的不同部分之间的内存填充情况。我注意到在第一次垃圾回收之后,元空间区域中占用的内存量急剧增加。

这是VisualGC表示形式的图像:

VisualGC_Monitoring

我想了解在第一个gc之后添加到元空间的内容。我做了研究,但没有得到答案。这里有帮助吗?

1 个答案:

答案 0 :(得分:0)

元数据空间不完整。根据标题,元空间的限制为1.008G,但其中有8.602M(初始分配为9.125M)。大约是限额的1%。

元空间包含与类相关的内容;即字节码,已编译的本机代码,描述符,静态变量。对于典型的Java应用程序来说,大约8M字节的元空间是相当有限的,该Java应用程序引入了一些Java SE或第三方库类。

  

我想了解在第一个gc之后添加到元空间的内容。

我怀疑这只是会计处理;即元空间使用的内存量仅在GC运行时才更新。如果您注意到,元空间使用的2个明显变化(在记录开始之后)都与GC事件一致。