当前位置: 首页 > news >正文

杭州 高端网站建设 推荐我的百度账号

杭州 高端网站建设 推荐,我的百度账号,广州市政府门户网站的网址是,厚街手机网站建设分代收集理论 分代收集理论,建立在两个分代假说之上。 弱分代假说:绝大多数对象都是朝圣夕灭的。 强分代假说:熬过越多次垃圾收集的过程的对象就越难以消亡。 这两个分代假说奠定了垃圾收集器的一致设计原则:收集器应该将Java…

分代收集理论

分代收集理论,建立在两个分代假说之上。

弱分代假说:绝大多数对象都是朝圣夕灭的。

强分代假说:熬过越多次垃圾收集的过程的对象就越难以消亡。

这两个分代假说奠定了垃圾收集器的一致设计原则:收集器应该将Java堆划分出不同的区域,然后回收对象依据年龄分配到不同的区域之中存储。一般的虚拟机都会分为新生代和老年代两个区域。新生代中每次垃圾回收都会有大量对象死去,而存活的对象会慢慢放到老年代中去。

由于新生代和老年代的存储对象的特点,我们可以认为在新生代中进行垃圾收集是十分具有性价比的,因为每次垃圾收集都能释放大量的内存空间;相比较而言老年的垃圾收集效率就不那么可观。因此可以进行分代垃圾收集,但是这时候又出现了新的问题,新生代中的对象有可能是被老年引用的,为了找出这部分对象,除了在GCRoots之外,还需要对老年代的对象进行扫描,需要遍历整个老年代,这无疑带来了巨大的内存负担。因此这就引出了第三个假说:跨代引用相对于同代引用仅占极少数。因此我们可以在新生代上建立一个全局的数据结构(记忆集),来代替老年代的全局扫描。这个结构把老年代分为若干小块,标识出老年代的哪一块内存会存在跨代引用。在此后的MinorGC时,只有包含了跨代引用的小块内存里的对象会加入GCRoots进行扫描。

MinorGC/YoungGC:新生代收集,指目标只是新生代的垃圾收集

MajorGC/OldGC:老年代收集,目标只是老年代的垃圾收集

FullGC:收集整个Java堆和方法区的垃圾收集

标记-清除算法:清除标记的对象

步骤:标记出所有需要回收的对象,标记完成后,统一回收掉所有被标记的对象。或者标记出需要存活的对象,清除未标记的对象。

缺点:

  1. 执行效率不稳定,如果Java堆中包含大量对象,而且其中大部分都是需要回收的,这时候必须进行大量标记和清除的动作,导致标记和清除两个过程的执行效率都随对象数量增长而降低。
  2. 内存空间的碎片化问题:标记,清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后程序在分配较大对象时无法找到足够的连续内存而触发另一次垃圾收集动作。

标记-复制算法:复制存活的对象到一端,其余的清除(新生代)

为了解决标记-清除算法面对大量可回收对象时执行效率低的问题,提出了半区复制的垃圾回收算法,它将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这块内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次性清理掉。如果内存中多数对象都是存活的,这种算法会产生大量的内存间复制的开销。

缺点:内存空间利用率不高,空间浪费太多。

现在的虚拟机采用这种方法去回收新生代,有研究专门对新生代“朝生夕灭”的特点做了更量化的诠释。新生代中有98%的对象熬不过第一轮垃圾收集,因此不需要按照一半一半的比例来划分新生代的内存空间。

针对“朝生夕灭”特点对象,提出了一种更优化的复制分代策略,称为“Appel式”回收,Serial,ParNew等新生代收集器都采用了这种模式。具体做法是,将新生代分为一块较大的Eden空间和两块较小的Survivor空间。每次分配内存只使用Eden和其中一块Survivor。发生垃圾收集时,将Eden和Survivor中仍然存活的对象一次性复制到另一块Survivor空间上,然后直接清理掉Eden和已用过的那块Survivor空间。HotSpot虚拟机默认Eden和Survivor的大小比例是8:1,这也就意味着有10%的内存被浪费,Appel式回收还有一个罕见情况的“逃生门”设计,当每次MinorGC中Survivor内存不足以容纳存活的对象时,就需要依赖其他内存区域(实际上是老年代)进行分配担保。

标记-整理算法:存活的对象移动到一端(移动式,老年代)

标记-整理的标记过程和标记-清除算法一样,区别就是不是直接对标记对象进行回收处理,而是让所有存活对象都向内存空间一端移动,然后直接清理掉边界以外的内存。

标记--清除和标记-整理的本质区别是是否是移动式的回收算法,前者是非移动的,后者是移动式的。

移动对象并更新所有引用这些对象将会是一项非常负重的操作,而且这种对象移动操作必须全程暂停用户应用程序(Stop The World)才能进行。

是否移动对象都存在弊端,移动则内存回收时更复杂(STW频率小),不移动会导致内存分配是更复杂。HotSpot虚拟机里关注吞吐量Parallel Old收集器是基于标记-整理算法,关注延迟的CMS收集器是基于标记-清除算法的,带来的内存碎片问题会使用一次标记-整理算法解决。

http://www.hkea.cn/news/632699/

相关文章:

  • 项目建设备案网站爱站网站长百度查询权重
  • 铜陵专业网站制作公司软文免费发布平台
  • 鹿泉市建设局网站短视频seo关键词
  • 手机网站开发标准网络营销服务工具
  • 施工企业分包工程会计与税务处理网站推广优化是什么意思
  • 网站建设开发的目的智能建站网站模板
  • 深圳市做网站的有那些公司沈阳百度推广哪家好
  • 用flash做网站教程个人发布信息免费推广平台
  • 网站主题页网站模板中心
  • 制作网页用什么进行页面布局seo优化方案案例
  • 国外经典平面设计网站做网站的费用
  • 学校营销型网站建设最新长尾关键词挖掘
  • 服务网络是什么意思上海关键词排名优化价格
  • 黑龙江做网站哪家好下载官方正版百度
  • 实时网站制作网站关键字优化
  • 商城网站要多少钱网页制作app
  • 做网站前端难吗个人网站
  • 怎么做亚马逊网站百度小说排行榜2020
  • 山东省建设文化传媒有限公司网站网站排名查询工具有哪些
  • 营销型企业网站有哪些网站建设找哪家好
  • 玉环做企业网站任何东西都能搜出来的软件
  • 无锡专业网站建设搜索优化seo
  • 成品软件源码网站大全百度权重10的网站
  • 深圳手机网站建设多少钱外链代发软件
  • 璧山集团网站建设互联网推广营销
  • 平面设计网址推荐全国seo搜索排名优化公司
  • 青岛公路建设集团网站东莞排名优化团队
  • 北京公司响应式网站建设价位太原网站建设开发
  • 龙岩网络诈骗通缉人员优化推广方案
  • 专做海外代购的网站设计案例网