一分钟学会查看GC日志
一、打印GC日志
如果你是一个Java老鸟了,但是你还没有打印过GC日志,是不是感觉差点意思,今天来学会一分钟打印GC日志。
1、一次改变
System.out.println(Runtime.getRuntime().totalMemory()/1024/1024); // 查看内存大小
System.out.println(Runtime.getRuntime().maxMemory()/1024/1024); // 查看最大内存
System.gc(); // 打印GC
2、设置打印堆栈信息
-XX:+PrintGCDetails
设置后保存。
结果查看
184
2708
[GC (System.gc()) [PSYoungGen: 3932K->840K(57344K)] 3932K->848K(188416K), 0.0011068 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
[Full GC (System.gc()) [PSYoungGen: 840K->0K(57344K)] [ParOldGen: 8K->739K(131072K)] 848K->739K(188416K), [Metaspace: 3282K->3282K(1056768K)], 0.0046973 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
Heap
PSYoungGen total 57344K, used 491K [0x0000000780900000, 0x0000000784900000, 0x00000007c0000000)
eden space 49152K, 1% used [0x0000000780900000,0x000000078097af88,0x0000000783900000)
from space 8192K, 0% used [0x0000000783900000,0x0000000783900000,0x0000000784100000)
to space 8192K, 0% used [0x0000000784100000,0x0000000784100000,0x0000000784900000)
ParOldGen total 131072K, used 739K [0x0000000701a00000, 0x0000000709a00000, 0x0000000780900000)
object space 131072K, 0% used [0x0000000701a00000,0x0000000701ab8f88,0x0000000709a00000)
Metaspace used 3289K, capacity 4496K, committed 4864K, reserved 1056768K
class space used 359K, capacity 388K, committed 512K, reserved 1048576K
二、手把手教你如何设置JVM参数
1、Help->Edit Custom VM Options
2、设置具体参数
-verbose:gc #开启GC日志
-XX:+PrintGCDetails #打印GC日志
-XX:+PrintGCDateStamps #打印GC时间戳
-Xloggc:gcc.log #将日志输出到文件(默认为桌面)
3、设置JVM运行时参数
本地参数:
-Xms512m
-Xmx1500m
-XX:ReservedCodeCacheSize=500m