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

山东网站备案 论坛建站推广网站排名

山东网站备案 论坛,建站推广网站排名,seo入门讲解,内容营销的价值是什么G1是一款既收集新生代又收集老年代的收集器#xff0c;使用它可以实现整个java堆的gc#xff0c;它有两个非常重要的新概念#xff1a;region和remember set#xff08;简称rset#xff09;。 region是啥#xff1f; G1中虽然保留了新生代和老年代的概念#xff0c;但是…        G1是一款既收集新生代又收集老年代的收集器使用它可以实现整个java堆的gc它有两个非常重要的新概念region和remember set简称rset。 region是啥 G1中虽然保留了新生代和老年代的概念但是不像其他收集器那样使用物理内存隔离来区分新生代和老年代在G1中新生代和老年代实现的是逻辑上的内存隔离G1将整个的java堆最多分成2048个大小相等的region每个region的大小为整堆实际大小/2048在1-32M之间并且为2的N次幂。对象是存储在region中的有四种不同类型的regionE、S、O、H分别对应着eden区的region、survivor区的region、老年代的region和h区的regioneden区的region用于存储新被创建的非巨型对象survivor区的region用于存储从eden区复制过来的年龄还未达到15的存活对象老年代的region用于存储从新生代晋升过来的老化对象这些对象大多都是经过了多次gc仍然存活的对象对象的存活概率非常大h区用于存储巨型对象那么什么是巨型对象呢巨型对象是指体积庞大需要占用内存比较大的对象在G1中对于巨型对象的定义是体积超过了一个region的容量的50%以上的对象。在其他的收集器实现中巨型对象在被创建之后直接存放在老年代在G1中巨型对象在被创建之后是存放在h区的region中的一个巨型对象会占用一个或多个连续的h区region。因为在G1中新生代和老年代实现的是逻辑内存的隔离所以G1也不要求相同类型的region必须相邻。在G1中对象被保存在region中所以在gc的时候也是对region中的对象执行可达性分析在可达性分析过程中用到了一个新的概念rsetG1收集器会用gc roots对象配合着rset记录来实现对象的可达性分析那么什么是rset呢 rset是啥 rset是在G1收集器中使用的一个新的数据结构它是一个列表G1收集器会为每一个region创建一个rsetrset中记录的是其他老年代region中的对象对于此region中对象的引用为啥要记录这些引用呢我们知道在其他的收集器中当去执行对象的可达性分析时需要沿着gc roots对象的引用链去查找对象根据引用关系判断对象是否可达而这些引用关系需要通过整堆扫描的方式才能获得可整堆扫描耗时太长为了在这一块儿进行优化G1引入了rset去将引用关系记录下来这样在可达性分析阶段就可以用扫描rset来代替整堆扫描了大大提高了收集性能。 G1的收集模式是怎样的呢 G1支持两种收集模式young gc和mixed gc混合收集。young gc是对于新生代region的gc混合gc是对于所有新生代region和部分老年代region的gc。 什么时候触发young gc呢young gc并非是一遇到eden内存不足以存储新对象就立即触发的初次遇到eden区的region不足以存储新对象时G1首先做的是为eden区分配新的region因为此时新生代的region占比仅为整堆内存的5%G1允许继续为eden区分配新的region但是新生代占比不能超过60%当占比接近60%时eden区的region内存不足就会触发young gc了。young gc在执行的时候会利用gc roots对象和rset记录对新生代的region中的对象执行可达性分析并且将存活对象拷贝到空闲的s区region中去当然在这个过程中要完成存活对象年龄的增长如果有哪个对象的年龄达到了15那这个对象会被晋升到老年代的region中存储如果eden区的region中有大量的对象存活了下来而没有足够的s区region去存储它们也会有部分对象被直接存储到老年代region中。存活对象复制完毕后将eden区的region以及只包含着垃圾的那些s区region清空。 随着程序的执行不断有对象从新生代晋升到老年代中老年代的region也慢慢被对象堆积起来当老年代region占用达到了设置的整堆比阈值默认45%时就要触发混合gc了混合gc是对于全部的新生代region以及部分老年代region的收集为什么是部分老年代而不是全部老年代呢这是因为G1收集器另外一个新特性支持可预测的STW时间设置G1收集器支持我们设置在m毫秒时长内可用于STW的最大时长n的值G1收集器需要在我们限定的这个时长内完成gc所以它不能收集全部的region只能收集部分region那么收集哪一部分region呢G1会对老年代所有region中的对象执行可达性分析分析完成之后所有region中的垃圾堆积情况就确定了然后会对这些region按照回收价值和回收成本做一个优先级排序有着更高的回收价值和更低的回收成本的region总会具有更高的优先级而混合gc中被收集的也是具有最高优先级的那一部分region。 G1收集器同CMS收集器一样也追求更短的STW时间所以它也是并发收集器的实现它的收集过程也分为四个步骤 1、初始标记初始标记是去标记gc roots对象以及被gc roots对象直接关联的对象这个过程要暂停用户线程会有短暂的STW时间 2、并发标记并发标记是根据gc roots对象以及rset记录去标记其他对象这个过程gc线程与用户线程并发虽然耗时较长但是用户线程不用暂停没有STW时间 3、重新/最终标记因并发标记这一步用户线程保持执行那么难免在执行中发生对象引用关系的变化而造成多标和漏标的问题因为漏标导致的结果很严重会让不该被回收的对象被gc回收掉而造成程序错误所以需要有重新标记过程。在并发标记过程中如果有个白色对象被新引用了这个引用会被记录下来在重新标记阶段去为它标记颜色即重新标记是为了做标记修正。这一步需要暂停用户线程会有STW时间但是这一步耗时非常短 4、筛选回收按照优先级筛选部分region进行回收这一步虽然会暂停用户线程但是会有多个gc线程并行回收STW时间很短。 G1收集器的优点 1、并行与并发G1收集器充分利用多核CPU的优势让用户线程与gc线程并发缩短了STW时间实现了更高的性能 2、分代收集G1收集器保留了分代的概念既可以收集新生代又可以收集老年代无需其他收集器配合就能管理整个的java堆 3、没有内存碎片问题G1收集器从局部看用的是复制算法从整体看用的是标记-整理算法没有CMS收集器的内存碎片问题 4、可预测的STW时间G1收集器支持可预测的STW时间模型设置让我们可以实现更好的用户线程暂停管理。
http://www.pierceye.com/news/472550/

相关文章:

  • 红酒 公司 网站建设青岛安装建设股份公司网站
  • 小米路由hd 做网站营销型网站策划 建设的考试题
  • 运河网站制作自主建站平台
  • 万网 网站建设合同最好的网站开发语言
  • 网站备案密码收不到典当 网站
  • 东莞网站建设推广服务网站建设开票单位
  • 贵港公司做网站东莞凤岗企业网站建设推广
  • 网站制作过程中碰到的问题微信怎么做链接推广产品
  • 做网站留后门是怎么回事视频网站开发需求分析
  • 关于做网站的了解点电子商务应用平台包括哪些
  • 垂直门户网站都有什么网站首页index.html
  • wordpress网站加载效果线上推销的方法
  • 网站都有什么语言杭州网络营销公司
  • 济南高新网站制作正规seo排名外包
  • 网站方案讲解技巧ppt的免费网站
  • 个人网站名称有哪些WordPress dux修改
  • 普法网站建设方案app制作开发公司怎么收费
  • 网站平台建设哪家公司好网站建设建站在线建站
  • 龙岗区住房和建设局在线网站网站如何做团购
  • 河南省建设监理协会网站证书查询wordpress 修改链接
  • 做网站业务员怎么样深圳福田最新新闻事件
  • 衡水商城网站建设外贸汽车配件做那个网站
  • 做网站的色彩搭配的小知识群艺馆网站建设方案
  • 深圳 汽车网站建设学习网站建设培训
  • 制作手机网站用什么软件唐山网站专业制作
  • 网站后台如何登陆互联网营销中心
  • 做排行榜的网站知乎长沙服务好的网络营销
  • 做网站猫要做端口映射吗太原网站建设口碑推荐
  • 新闻门户网站是什么快速搭建网页
  • 随意设计一个网站域名是什么?