第一步:我首先打开了jvisualvm.exe,在Visual GC 里面发现了今天要讨论的重点:GC
第二部:我在项目启动参数里面配置了:
-XX:+PrintGCApplicationStoppedTime 打印垃圾回收期间程序暂停的时间
-XX:+PrintGCDetails 打印GC详细信息
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-Xloggc:D:/apache-tomcat-7.0.56/logs/gc.log 设置GC输入的文件地址
打印出系统的GC日志
Java HotSpot(TM) 64-Bit Server VM (25.45-b02) for windows-amd64 JRE (1.8.0_45-b14), built on Apr 10 2015 10:34:15 by "java_re" with MS VC++ 10.0 (VS2010)
Memory: 4k page, physical 8292720k(2030836k free), swap 16583580k(9162992k free)
CommandLine flags: -XX:InitialHeapSize=132683520 -XX:+ManagementServer -XX:MaxHeapSize=2122936320 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
2.629: [GC (Allocation Failure) [PSYoungGen: 33280K->5102K(38400K)] 33280K->6630K(125952K), 0.0435191 secs] [Times: user=0.13 sys=0.02, real=0.04 secs]
3.688: [GC (Allocation Failure) [PSYoungGen: 38382K->5106K(71680K)] 39910K->8379K(159232K), 0.0214437 secs] [Times: user=0.08 sys=0.00, real=0.02 secs]
5.310: [GC (Allocation Failure) [PSYoungGen: 71666K->5108K(71680K)] 74939K->19402K(159232K), 0.0254839 secs] [Times: user=0.08 sys=0.00, real=0.03 secs]
5.809: [GC (Allocation Failure) [PSYoungGen: 71668K->5117K(138240K)] 85962K->32311K(225792K), 0.0465904 secs] [Times: user=0.17 sys=0.00, real=0.05 secs]
6.754: [GC (Allocation Failure) [PSYoungGen: 138237K->5114K(138240K)] 165431K->52655K(225792K), 0.1084693 secs] [Times: user=0.37 sys=0.02, real=0.11 secs]
7.407: [GC (Allocation Failure) [PSYoungGen: 138234K->28656K(287744K)] 185775K->78955K(375296K), 0.1779500 secs] [Times: user=0.53 sys=0.00, real=0.18 secs]
8.649: [GC (Allocation Failure) [PSYoungGen: 287728K->35808K(294912K)] 338027K->102952K(382464K), 0.0374501 secs] [Times: user=0.03 sys=0.06, real=0.04 secs]
8.686: [Full GC (Ergonomics) [PSYoungGen: 35808K->0K(294912K)] [ParOldGen: 67143K