GC日志查看和分析
发布网友
发布时间:2022-11-29 19:40
我来回答
共1个回答
热心网友
时间:2023-10-28 14:35
可以通过在java命令种加入参数来指定对应的gc类型,打印gc日志信息并输出至文件等策略。
GC的日志是以替换的方式(>)写入的,而不是追加(>>),如果下次写入到同一个文件中的话,以前的GC内容会被清空。
启动命令:
结果:
也是一次minor gc,但是与前两次的gc原因不一样,这次的gc原因是:[Metadata GC Threshold],Metadata即元数据的意思,我们可以看出这是与虚拟机的元数据区有关系的一次gc;元数据区,在jdk1.8以前又叫永久代,从JDK8开始,永久代(PermGen)的概念被废弃掉了,取而代之的就是这里的称为Metaspace的存储空间;元空间和永久代是虚拟机对方法区这个概念的一个具体实现;对于元空间而言,这一块空间是存在本地内存当中的,因此,默认情况下,元空间的大小仅受本地内存*,但我们可以通过参数来指定元空间的大小
这里元空间发生gc,说明元空间的内存不够了,到达了阀值;对元空间进行了一次垃圾回收,回收之前是245183K,回收之后是3769K
在元空间gc之后,紧接着发生了一次Full GC,且触发原因也是元空间不足