jvm垃圾回收
来源:互联网 发布:为知笔记思维导图插件 编辑:程序博客网 时间:2024/06/02 06:06
http://www.alidata.org/archives/1773
在jvm中堆空间划分为三个代:年轻代(Young Generation)、年老代(Old Generation)和永久代(Permanent Generation)。年轻代和年老代是存储动态产生的对象。永久带主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等。永久带基本不参与垃圾回收。我们这里讨论的垃圾回收主要是针对年轻代和年老代。具体如下图。
年轻代又分成3个部分,一个eden区和两个相同的survior区。刚开始创建的对象都是放置在eden区的。分成这样3个部分,主要是为了生命周期短的对象尽量留在年轻带。当eden区申请不到空间的时候,进行minorGC,把存活的对象拷贝到survior。年老代主要存放生命周期比较长的对象,比如缓存对象。具体jvm内存回收过程描述如下(可以结合上图):
1、对象在Eden区完成内存分配
2、当Eden区满了,再创建对象,会因为申请不到空间,触发minorGC,进行young(eden+1survivor)区的垃圾回收
3、minorGC时,Eden不能被回收的对象被放入到空的survivor(Eden肯定会被清空),另一个survivor里不能被GC回收的对象也会被放入这个survivor,始终保证一个survivor是空的
4、当做第3步的时候,如果发现survivor满了,则这些对象被copy到old区,或者survivor并没有满,但是有些对象已经足够Old,也被放入Old区 XX:MaxTenuringThreshold
5、当Old区被放满的之后,进行fullGC
在知道垃圾回收机制以后,大家可以在对jvm中堆的各个参数进行优化设置,来提高性能。
- JVM 之垃圾回收
- jvm - 垃圾回收
- jvm垃圾回收
- JVM垃圾回收策略
- JVM 垃圾回收算法
- JVM垃圾回收
- jvm垃圾回收
- JVM垃圾回收总结
- JVM 垃圾回收算法
- JVM 垃圾回收 总结
- jvm垃圾回收原理
- JVM垃圾回收总结
- jvm垃圾回收
- jvm垃圾回收
- JVM垃圾回收机制
- JVM垃圾回收机制
- jvm垃圾回收
- JVM垃圾回收器
- 无法更新到Win8.1的原因与解决办法
- uva 1452 - Jump(约瑟夫环)
- 庆祝CSDN改版给出《超容易的Linux系统管理入门书》的主要知识点
- 爱分享 css控制图片垂直水平居中支持IE6、IE7、IE8、FF等…
- ios7后台更新功能
- jvm垃圾回收
- 时间戳杂谈
- 目标检测的图像特征提取之HOG特征
- Struts2拦截器使用方法
- C++的Json解析库:jsoncpp
- ehcache配置
- SQL2008 添加扩展属性 名称,值,以及表中的字段说明
- java基础—继承连接
- 在程序中调用其他进程或文档