本文演示在JVM进程运行过程中动态开启/关闭 GC输出,无需重启JVM进程
jinfo使用介绍
可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
-flag pid:打印指定JVM的参数值
-flag [+|-] pid:设置指定JVM参数的布尔值
-flag = pid:设置指定JVM参数的值
有一点必须注意:PrintGC必须开启,只开启PrintGCDetails、PrintGCTimeStamps不会输出GC,必须PrintGC同时开启
1、JVM启动时设置以下参数:-Xmx20m -Xms20m -Xmn2m,代码如下(改代码会发生GC)
2、使用jinfo查看JVM GC的相关参数值

3、启动GC输出

4、控制台GC输出
170.658:[GC[PSYoungGen:0K->0K(1536K)]18091K->18091K(19968K),0.0006562secs][Times:user=0.00sys=0.00,real=0.00secs]
170.658:[GC[PSYoungGen:0K->0K(1536K)]18091K->18091K(19968K),0.0003981secs][Times:user=0.00sys=0.00,real=0.00secs]
170.659:[FullGC[PSYoungGen:0K->0K(1536K)][ParOldGen:18091K->2048K(18432K)]18091K->2048K(19968K)[PSPermGen:3280K->3280K(21504K)],0.0060813secs][Times:user=0.03sys=0.00,real=0.01secs]
5、参考资料