- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java垃圾回收机制的两件事
Java垃圾回收机制的两件事想索取更多相关资料请加qq:649085085或登录PS;本文档由北大青鸟广安门收集自互联网,仅作分享之用。垃圾回收机制主要完成下面两件事情: 跟踪并监控每个Java对象,当某个对象处于不可达状态时,回收该对象所占用的内存; 清理内存分配,回收过程中产生的内存碎片。 实际上,垃圾回收机制不可能实时检测到每个Java对象的状态,因此当一个对象失去引用后,它也不会被立即回收,只有等垃圾回收运行时才会被回收。 对于一个垃圾回收器的设计算法来说,大致有如下可供选择的设计。 串行回收(Serial)和并行回收(Parallel):穿行回收就是不管系统有多少个CPU,始终只用一个CPU来执行垃圾回收操作;而并行回收就是把整个回收工作拆分成多个部分,每个部分由一个CPU负责,从而让多个CPU并行回收。并行回收的执行效率很高,但复杂度增加,另外也有其他一些副作用,比如内存碎片也会增加。 并发执行(Concurrent)和应用程序停止(Stop-the-world):Stop-the-world的垃圾回收方式在执行垃圾回收的同时会导致应用程序的暂停。并发执行的垃圾回收虽然不会导致应用程序的暂停,但由于并发执行垃圾回收需要解决和应用程序的执行冲突(应用程序可能会在垃圾回收的过程中修改对象),因此并发执行垃圾回收的系统开销比stop-the-world更高,并且需要更多的堆内存。 压缩和不压缩和复制:为了减小内存碎片,支持压缩的垃圾回收器会把所有的活对象搬迁到一起,然后将之前占用的内存全部回收。不压缩式的垃圾回收器只是回收内存,这样回收回来的内存不可能是连续的,因此将会有较多的内存碎片。较之压缩式的垃圾回收,不压缩式的垃圾回收回收内存块,而分配内存时就会更慢,而且无法解决内存碎片的问题。复制式的垃圾回收会将所有可达对象复制到另一块相同的内存中,这种方式的优点是垃圾回收过程不会产生内存碎片,但缺点也很明显,需要复制数据和额外的内存。 复制:将堆内分成两个相同空间,从根(有向图的起始节点)开始访问每一个关联的柯达对象,将空间A的柯达对象全部复制到空间B,然后一次性回收整个空间A。对于复制算法而言,因为只需访问所有的可达对象,将所有可达对象复制走之后就回收整个空间,完全不用理会那些不可达的对象,所以遍历空间的成本较小,但需要巨大的复制成本和较多的内存。 不压缩:标记清除(mark-sweep),垃圾回收器从根开始访问所有柯达对象,将它们标记为可达状态,然后再遍历一次整个内存区域,把所有没有标记为可达的对象进行回收处理。标记清除无需进行大规模的复制操作,而且内存利用率高。但这些算法需要两次遍历堆内存空间,遍历的成本较大,因此造成应用程序暂停的事件随堆空间大小线性增大。而且垃圾回收回来的内存往往是不连续的,因此整理后堆内存里的碎片很多。 压缩:标记压缩(mark-sweep-compact):这种方式充分利用上述两种算法的优点,垃圾回收器先从根开始访问所有可达对象,将它们标记为可达状态。接下来垃圾回收器会将这些活动对象搬迁在一起,这个过程也被称为内存压缩,然后垃圾回收机制再次回收那些不可达对象所占用的内存空间,这样就避免了回收产生的内存碎片。 现行的垃圾回收器用分代的方式来采用不同的回收设计。分代的基本思路是根据对象生存事件的长短,把堆内存分为3个代: Young;Old;Permanent。 垃圾回收器会根据不同代的特点采用不同的回收算法,从而充分利用各种回收算法的优点。 分代回收的一个依据就是对象生存时间的长短,然后再根据不同代采取不同的垃圾回收策略。采用分代策略基于两个事实: 绝大多数的对象不会被长时间引用,这些对象在其Young期间就会被回收。 很老的对象(生存时间很长)和很新的对象(生存时间很短)之间很少存在相互引用的情况。 Young代 对于Young代采用复制算法只需遍历那些处于可达状态的对象,而且这些对象的数量较少,可复制成本也不大,因此可以充分发挥复制算法的优点。Young代由1个Eden区和2个Survivor区构成。绝大多数对象先分配到Eden区中,Survivor区中的对象都至少在Young代中经历过一次垃圾回收,所以这些对象在被转移到Old代之前会先保留在Survivor空间中。同一时间2个Survivor空间中有一个用来保存对象,而另一个是空的,用来在下次垃圾回收时保存Young代中的对象。每次复制就是将Eden和第一个Survivor的可达对象复制到第2个Survivor区,然后清空Eden与第1个Survivor区。Eden与 Survivor的比例通过-XX:SurvivorRatio附加选项来设定,默认为32.如果Survivor太大会产生浪费,太小则会使一些
您可能关注的文档
- 致五年一班家长一封信.docx
- 篮 球 比 赛 规.doc
- 五年级语文下册第六单元检测题.doc
- 网站建设重视用户需求就是发掘网站潜在价值.doc
- 当代中国历史性题材油画创作的前景.doc
- 威尼斯城市场所营造研究_潘晖.pdf
- 16 江南的冬景.doc
- 浅谈反刍动物饲养和温热气体.doc
- 帛书刑德解读1.doc
- 语文十一册1—4单元练习.doc
- 高三生物一轮复习课件第8课时 酶和ATP.pptx
- 高三生物一轮复习课件 细胞中的元素和化合物,细胞中的无机物.pptx
- 2025年中考物理复习答题技巧与模板构建专题04热学必考的三个重点实验(解析版).docx
- 高三生物一轮复习课件:细胞核的结构和功能.pptx
- 高三生物一轮复习课件:光合作用的影响因素及其应用课件.pptx
- 高三生物一轮复习课件:细胞膜与细胞核.pptx
- 高三生物一轮复习课件蛋白质与核酸.pptx
- 高三一轮复习生物:细胞呼吸的原理和应用课件(1).pptx
- 高三生物一轮复习课件第8讲+酶和ATP.pptx
- 2.2基因在染色体上课件高一下学期生物人教版(2019)必修2 (2).pptx
最近下载
- 35KV变电站施工方案【参考】.doc VIP
- 乡村学校教育质量提升的策略研究教学研究课题报告.docx
- 垃圾回收仓库管理制度.docx VIP
- 广东省深圳市罗湖区2023-2024学年四年级下学期7月期末英语试题(含答案).doc VIP
- 2023年山东省高中物理合格考真题 .pdf VIP
- 低空经济产业基地项目经济效益分析报告(范文参考).docx
- 论大学生实习期间劳动权益保障困境与突破路径.docx
- 2024年北京市中考物理试题(含答案及解析).docx
- DLT526-2013 备用电源自动投入装置技术条件.pdf VIP
- 2025年心理咨询师专业技能知识考试题库(浓缩500题).docx
文档评论(0)