Java垃圾回收_过程观察
来源:互联网 发布:淘宝商城渔具店 编辑:程序博客网 时间:2024/06/04 18:25
这是今天看JVM垃圾回收的时候做的实验观察。
- 使用工具:Java VisualVM、VisualVM GC插件
- 观察应用:Tomcat容器中的Web服务
1. Java VisualVM
在tomcat服务启动过程中,内存展示的“锯齿”模式(如图1所示),表示对象被分配到“伊甸园(Eden区)”中,然执行“年轻代垃圾收集”;每次年轻代收集之后,被占用的内存量回落到基线水平。
图1
在Tomcat服务运行过程中,堆内存表现为“使用内存”逐渐增长,到达最大值(接近)时,会进行垃圾收集(如图2所示),然后堆内存使用回到基线水准。基线水平(蓝色)是终身制对象和幸存者对象合起来的用量。如果基线水准保持平稳或者逐渐下行,则说明内存使用良好;如果基线水平上升,未必是程序中有错误,也可能是有些对象的生命周期长,足够进入Old区。
图2
2. VisualVM GC
通过观察Tomcat应用服务的运行,可以看到Eden(伊甸园)中的空间逐渐不够用,然后经历一次年轻代收集:年轻代收集过后,伊甸园空间和收集前的s0中(如图3所示)的对象被回收;在上述两个空间中幸存下来的对象存放在s1中,如图4所示。
图3
执行过一次年轻代回收之后的结果如下所示:
图4
3. 补充概念
- 年轻代收集:针对Eden和幸存者区域中的对象执行“标记&清除”算法,会有一部分没有被清除的对象,遗留下来存放到另一个幸存者区域中;
- 何时将对象放入Old区域:(1)经过多次(达到阈值)都幸存下来的对象,则进入Old区域;(2)年轻代回收的时候发现幸存者区域满了。
参考资料
- JVM中的G1垃圾回收器
- 《Java程序员修炼之道》
0 0
- Java垃圾回收_过程观察
- Java垃圾回收过程
- Java虚拟机垃圾回收过程
- Java JVM 垃圾回收(GC)过程
- C#_垃圾回收
- [翻译]Java Garbage Collection Basics Java 垃圾回收基础 之5 自己动手观察
- 垃圾回收过程
- CMS垃圾回收过程
- Java垃圾回收机制_动力节点Java学院整理
- java垃圾回收算法之-标记__清除_压缩
- Java清理_终结处理和垃圾回收(笔记)
- java学习笔记4_垃圾回收机制
- Java垃圾回收
- java垃圾回收算法
- JAVA垃圾回收问题
- Java 垃圾回收
- JAVA垃圾回收
- Java中的垃圾回收
- WPA/WPA2安全认证加密原理详解
- 常用性能分析工具 (性能论述)
- java__线程通信
- Qt pro文件的写法规则
- Java代码生成器--告别无止境的增删改查
- Java垃圾回收_过程观察
- js表头固定实现思路汇总
- 利用js动态控制animation动画
- [leetcode]First Bad Version
- 关爱Android手机休眠,为什么耗电
- iOS Runtime能做什么?
- java学习经典书籍_杂篇
- 图片轮播的优化````释放(未完待续)
- ATS (Apache Traffic Server) 配置