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

杭州网站免费制作安康市燃气公司电话

杭州网站免费制作,安康市燃气公司电话,宁波seo网络推广优质团队,潍坊网站建设优化推广前言 本文参考《深入理解Java虚拟机》#xff0c;本文主要介绍G1收集器的收集思想和具体过程#xff08;填上一篇文章留下的坑#xff09; 本系列其他文章链接#xff1a; JVM#xff08;Java Virtual Machine#xff09;内存模型篇 JVM#xff08;Java Virtual Machi…前言 本文参考《深入理解Java虚拟机》本文主要介绍G1收集器的收集思想和具体过程填上一篇文章留下的坑 本系列其他文章链接 JVMJava Virtual Machine内存模型篇 JVMJava Virtual Machine垃圾收集算法篇 JVMJava Virtual Machine垃圾收集器篇 G1Garbage First收集器 G1是一款主要面向服务端应用的垃圾收集器。它诞生的目的就是取代CMS的位置或者说是“代替者”和“继承人”。开发者在设计之初就是希望能建立一个“停顿时间模型”的收集器。 停顿时间模型能够支持指定在一个长度为x毫秒的时间片段内消耗的垃圾收集时间大概率不超过x毫秒这样的目标 所以G1就在这样的希望下被创造出来了 G1的“化整为零” 在G1收集器中它将连续的堆划分为大小相等的独立的区域Region每个Region都可以根据需要扮演新生代的Eden、Survivor空间或者老年代空间这些空间大小都是动态变化的不再和以前的收集器一样限定分区空间大小。 除此之外Region还有一类Humongous区域这部分区域是专门为大对象准备的。 大对象判定每个对象超过Region容量一半以上就算大对象 所以基于以上分区下G1的垃圾收集就没有Minor GC、Major GC、Full GC 这种概念了它采用的是Mixed GC也就是说G1可以对堆中的任何部分来组成回收集合Collection Set通俗就是“打包一起丢”它的衡量标准是哪块内存中存放的垃圾数量最多回收价值越大就在规定的时间内优先处理这些垃圾 因此为了知道那个区域最优价值所以也需要维护一个优先列表每次GC从列表中取最优的这也是为什么叫“Garbage First”的原因。 基于以上G1中堆的内存布局可能是这样的 G1存在的关键问题已经如何解决的 问Region里面存在跨Region引用对象如何解决 答 使用记忆集但这个记忆集会比其他垃圾器的记忆集更为复杂G1 至少要花费相当于Java堆容量的10%~20%来对这个记忆集进行维护工作。 每个Region的记忆集不就记录下当前Region指向的其他Region的地址而且还有别人指向自己的并标记这些指针分别在哪些卡页范围之内也就是 “我指向谁谁指向我”的记忆集。 补充内容记忆集可以避免垃圾扫描时进行全堆扫描节约时间 问并发标记阶段如何保证收集线程与用户线程互不干扰地运行 答 在回答这个问题前我们需要了解两个概念“增量更新”和“原始快照” 增量更新在并发标记过程中用户线程新对象在GC Root上的某个Node相关联时我们将这个新来的引用记录下来并发标记结束后重新对Node进行扫描查看是否任然是关联关系。原始快照SATB算法对当前堆的关联关系进行快照保存不管中途是新增还是删除并发标记过程中根据快照的关联关系进行扫描 在了解上面两个概念后就可以回答这个问题了G1使用的是原始快照当然具体实现上肯定不止这么简单 此外G1为每个Region设计了两个名为TAMSTop at Mark Start的指针把Region中的一部分空间划分出来用于并发回收过程中的新对象分配并发回收时新分配的对象地址都必须要在这两个指针位置上。G1收集器默认这个地址上的对象是被隐式标记过了即默认他们是存活的。 问怎样建立起可靠的停顿预测模型 答 G1 收集器的停顿预测模型是以“衰减均值”为理论基础来实现的在垃圾收集过程G1收集器会记录每个Region的一些数据例如记忆集里面的脏数据、回收耗时等数据进行计算最终根据这个值来确认回收价值在规定时间内每次回收价值最大的。详细过程读者可以自行了解这里不做过多赘述OWO G1的垃圾收集过程 G1的垃圾收集大致分为下面四个步骤 初始标记Initial Marking 需要停顿线程但是耗时非常短。仅标记GC Roots能直接关联到的对象比修改TAMS的值让下一阶段用户线程并发能正确在Region中分配对象 并发标记Concurrent Marking 与用户线程并发从GC Roots中递归查找可以回收的对象耗时较长对象数量决定 扫描结束后还需要重新处理SATB记录下的并发时有引用变动的对象 最终标记Final Marking 用户线程短暂停顿用于处理并发阶段结束后遗留下来的最后那少量的SATB记录 筛选回收Live Data Counting and Evacuation: 暂停用户线程并发回收对Region中的价值进行排序然后打包多块Region收集把存活的Region复制到另一个Region中然后情况当前Region。这个过程设计对象移动所以需要暂停用户线程。堆内回收示意 到这一步其实也能看出来G1在一定程度上不仅仅为了低延迟还想方设法保证吞吐量不然再最后回收阶段他任然可以并发用户线程ZGC是如此下图是G1收集器运行过程图 END 希望能对你有帮助
http://www.yutouwan.com/news/421586/

相关文章:

  • 百度如何建网站群wordpress 文档
  • uc网站怎么做精品网站建设费用磐石网络名气
  • 用c 做的网站怎么打开吗wordpress 分页
  • 金蝶网站建设公司案例山西城乡和建设厅网站首页
  • 设计网站案例电子商务网站建设与维护实训
  • 网站怎么做用户登录数据库山东服务好的seo公司
  • 专业免费网站建设哪里便宜网站产品页面设计
  • 展示型网站 带后台wordpress 定时脚本
  • 官方网站建设案例个人网页制作成品免费下载
  • 创新 反腐倡廉网站建设织梦网站404页面模板
  • 网站的管理页面wordpress 集成环境
  • 昆山住房和城乡建设局网站首页保定建设招聘信息网站
  • 芜湖市网站建设公司wordpress代币社交
  • 微小店网站建设用途wiki网站开发工具
  • 茶叶网站的建设策划书wordpress图片主题演示
  • 随州网站建设哪家专业12306网站是阿里做的
  • 如何查看网站ftp地址松山湖仿做网站
  • 台州优化官方网站怎样设计app软件
  • 手机网站底部导航菜单评测主题 wordpress
  • 怎样用dw做新闻发布网站如何配置 网站二级域名
  • 网站备备份教程专业的饰品行业网站开发
  • 网站模板之家免费模板微商城模板包含哪些
  • 高端网站建设深圳湖北网站建设找哪家
  • 网站设计就业要求山东省市场监督管理局官网
  • 设计人才网站拍摄制作宣传片企业
  • 去哪里做网站安全等级保护级别系统架构有哪几种
  • 购物网站建设方案书直播视频网站如何做
  • 多多短视频下载赚钱哈尔滨seo优化大家
  • 健身网站怎么做网站开发工程师职业定位
  • 企业网站推广的方法包括科技网站设计资讯