首先我们来介绍什么事GC:
Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver Stop)的保证JVM中的内存空间,防止出现内存泄露和溢出问题。
在Java语言出现之前,就有GC机制的存在,如Lisp语言),Java GC机制已经日臻完善,几乎可以自动的为我们做绝大多数的事情。然而,如果我们从事较大型的应用软件开发,曾经出现过内存优化的需求,就必定要研究Java GC机制。
我们如何获取GC日志:
一种是使用命令动态查看,
17997 就是所谓的pid ,应用进程的id。
也可以设置间隔固定时间来打印:
每隔2000ms输出1262的gc情况,一共输出20次。
一种是在容器中设置相关参数打印GC日志。
JVM的GC日志的参数设置如下:
-----XX:+PrintGC
输出GC日志
------XX:+PrintGCDetails
输出GC的详细日志
------XX:+PrintGCTimeStamps
输出GC的时间戳
------XX:+PrintGCDateStamps
输出GC的时间戳
------XX:+PrintHeapAtGC
在进行GC的前后打印出堆的信息
------Xloggc:../logs/gc.log
日志文件的输出路径
接下来我们来分析gc日志Young GC回收日志:
2016-07-05T10:43:18.093+0800: 25.395: [GC [PSYoungGen: 274931K->10738K(274944K)] 371093K->147186K(450048K), 0.0668480 secs] [Times: user=0.17 sys=0.08, real=0.07 secs]
Full GC回收日志:
10738K->0K(274944K)] [ParOldGen: 136447K->140379K(302592K)] 147186K->140379K(577536K) [PSPermGen: 85411K->85376K(171008K)], 0.6763541 secs] [Times: user=1.75 sys=0.02, real=0.68 secs]
通过上面日志分析得出,PSYoungGen、ParOldGen、PSPermGen属于Parallel收集器。其中PSYoungGen表示gc回收前后年轻代的内存变化;ParOldGen表示gc回收前后老年代的内存变化;PSPermGen表示gc回收前后永久区的内存变化。young gc 主要是针对年轻代进行内存回收比较频繁,耗时短;full gc 会对整个堆内存进行回城,耗时长,因此一般尽量减少full gc的次数
通过两张图来解析gc日志构成:
Young GC日志:
Full GC日志:
相关推荐
JVM、GC详解及调优,JVM、GC详解及调优,JVM、GC详解及调优
JVM、GC详解及调优,资料很详细,清楚,仔细阅读
适用于jvm运行生成的gc日志文件可视化分析
jvm配置参数详解,以及Java gc详解
本文档可以作为学习JVM GC的工具书所使用,对于想深入学习JVM GC原理的同学,这一本书就足够了。因为本文档是作者花费数月时间,查阅GC相关的国内外众多资料并加以思路清晰的条目化而形成。因为篇幅所限,可能有部分...
JVM 输出 GC 日志导致 JVM 卡住
jvmgc过程介绍(jpg)
java进阶必备书籍,高清版。带目录结构。方便阅读,书中内容讲的透彻
JVM GC垃圾回收.pdf
本文档详细讲解了JVM(Java Visual Mathine)的方方面面,首先由java的特性来描绘JVM的大致应用,再详细阐释了 JVM 的原理及内存管理机制和调优,讲述了与JVM密切相关的 Java GC 机制,最后对 JVM 调优进行了总结。...
用java内存监控工具生成的JVM内存日志,用jmap生成的
jvm gc jvm gc jvm调优 查看工具
英文版的IBM JVM GC的非常详细的技术文档,包括GC的原因分析,GC日志分析,GC过程分析
JVM 深入JVM JVM详解 JVM知识点 java虚拟机 深入java虚拟机
jvm1.6参数详解
46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT详解JVM,46页PPT...
用于测试jvm gc调优-share-jvm-gc
虽然功能叫hpjmeter简单,界面也不咋地 不过容错性要比hpjmeter强很多,虽然快照中所有性能指标都挤在一起,但是很直观 总体来说比较强悍,特收金币一枚...
JVM与GC调优课程视频 〖课程介绍〗: JVM与GC调优课程视频 〖课程目录〗: 1.笔记/ ├── 第1篇-字节码篇.png?x-oss-process=style/pnp8 ├── 第2篇-类的加载篇.png?x-oss-process=style/pnp8 ├── 第3篇-运行时...
JVM_GC调优