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

互联网公司怎么找网站建设客户seo点击工具

互联网公司怎么找网站建设客户,seo点击工具,商业空间设计调研,滁州市城乡住房建设官网CMS的垃圾回收机制,为什么分为四步https://blog.csdn.net/genffe880915/article/details/144205658说完CMS垃圾回收器,必定要说到目前一般应用项目中都推荐的G1。G1在JDK1.7 update4时引入,在JDK9时取代CMS成为默认的垃圾收集器。它是HotSpot…

CMS的垃圾回收机制,为什么分为四步icon-default.png?t=O83Ahttps://blog.csdn.net/genffe880915/article/details/144205658说完CMS垃圾回收器,必定要说到目前一般应用项目中都推荐的G1。G1在JDK1.7 update4时引入,在JDK9时取代CMS成为默认的垃圾收集器。它是HotSpot在JVM上力推的垃圾收集器,并赋予取代CMS的使命。

简述

G1垃圾收集器不同于老版垃圾收集器,采用了独特的内存管理策略,实现了对整个堆空间的垃圾收集。G1分代上还是参考了老版的设计思想。它将堆内存分为多个大小相等的区域(Region),每个Region可以是Eden区、Survivor区或者Old区。

通过以下参数可以启用G1、设置Region的大小等:

// 整堆启用G1的垃圾回收器
-XX:+UseG1GC// 设置最大暂停时间(默认200ms)
-XX:MaxGCPauseMillis=n// 指定Region的内存大小,n必须是2的指数幂,其取值范围是从1M到32M
-XX:G1HeapRegionSize=n// 指定垃圾回收工作的线程数量
-XX:ParallelGCThreads=n

G1还对大对象(Humongous)进行了独立的处理,在国内的很多资料中介绍都会称为Humongous区,将该Region和Old区进行区分开来。但是我参考外网的资料我发现其介绍如下:

In G1 GC we've already described how objects are stored in regions. If the object size is equal to or greater than 50% of the region size, it is considered a humongous object. Humongous objects are allocated directly to the old generation, are handled differently and can cause fragmentation.

如果我没理解错的话,大对象会直接分配到Old区,并没有独立分区的概念。

Whatever,为便于理解我们还是称为Humongous区。 

Houmongous区的判断规则为当一个对象大于或等于Region大小的50%,甚至可能横跨了多个Region来存放。

G1根据每个Region的垃圾收集情况来决定下一次的垃圾收集Region,这样避免了对整个堆内存收集,从而减少垃圾收集时间。

原理

G1垃圾收集模式有两种:Young GC和Mixed GC

Young GC主要针对年轻代区域,包括Eden区和Survivor区。当所有Eden区使用率达到了最大阈值(默认60%)或者G1计算出来的回收时间接近用户设定的最大暂停时间时,会触发Young GC。将这两个Region的对象复制到另外的Survivor。

Young GC在收集时采用了三个关键技术,分别是记忆集、卡表和写屏障。

  • 记忆集是G1内部维护引用关系表,记录了跨代引用(不会记录年轻代的互相引用),即非回收区域(老年代)对象引用回收区域对象的关系。
  • 卡表、卡页:每个Region可以继续划分就成为卡页,每个Region会额外配置一小块内存用于记录堆中哪些卡页引用了自己Region中的对象,称为卡表。如果引用了自己Region中的对象,则称为脏卡。
  • 写屏障实际上是更新卡表的技术,类似于Java中AOP技术。在用户线程中老年代的对象引用了年轻代对象时,更改卡表中对应的字节为脏卡,同时将脏卡放入一个队列中,JVM有独立的线程定期读取队列中的数据,更新数据集。

记忆集记录了跨代的引用,在GC的时候,可以快速的借助它和GC Roots搞定跨代引用的可达对象分析问题,提高收集效率。 

Mixed GC为G1特有的收集方式,针对年轻代和部分老年代区域。当老年代的使用率达到了阈值(默认45%)或年轻代被分配了Humougous对象,会触发Mixed GC,回收所有年轻代和一部分老年代区。

在回收老年代的时候,往往因为对象较多,G1为提高收集效率并减少STW,耗时长的阶段采用了用户线程并行方式,总体分为初试标记、并发标记、最终标记、清理和转移。这几个方式听起来是不是和CMS的部分阶段挺类似的。

  • 初始标记阶段,G1会短暂STW,快速标记出和GC Roots跟对象直接关联的对象。
  • 并发标记阶段是从GC Roots直接关联的对象出发,完整遍历堆内的关联对象,这个耗时较长,但是与用户线程并行。
  • 最终标记会STW,主要用于修正并发标记期间发生变动的对象。
  • 清理阶段也会暂停用户线程,在标记完成后,G1垃圾收集器会整理Region区,调整记忆集,当某个Region没有存活对象后,则清理该Region。
  • 转移阶段也会STW,将某个Region存活的对象赋值到另外一个Region。

总结

在上面的原理中,Mixed GC会暂停用户线程三次,但是在G1垃圾收集器中,采用的记忆集、卡表和写屏障的技术,有点类似数据库的索引一样,最大程度的减少了STW的时间。

当整个G1垃圾收集器也并不是我所描写的这么简单,例如MixedGC中用到的三色标记算法和SATB技术,还有更多深层的技术细节期待与诸位共同学习,本文仅做初步的概念普及。

欢迎使用haptool.com(哈普工具),让程序员的工作更有效率。

http://www.tj-hxxt.cn/news/119617.html

相关文章:

  • 深圳网络推广运营企业网站做优化好还是推广好
  • 电脑怎么用别人的网站吗销售crm客户管理系统
  • 有什么好的网站设计思想的博客免费seo培训
  • 重庆可做网站 APP网站建设的基本
  • 做360网站优化快速自媒体营销方式有哪些
  • 群晖nas 做网站免费seo在线优化
  • 武汉今天特大新闻首页优化公司
  • 哪里有网站建设手机百度公司招聘信息
  • 什么网站可以做软件有哪些东西产品宣传推广方案
  • 企业为什么要上市郑州seo哪家专业
  • 韩国网站建站网页推广怎么收取费用
  • 做美女网站怎么免费创建网站
  • 网站banner 代码市场调研的方法有哪些
  • 网站名称 备案阿里云域名查询
  • 著名的深圳网站建设招聘网站排名
  • 网站开发与建设课程湖南好搜公司seo
  • wordpress 路由自定义页面西安seo优化培训
  • 聊天网站制作教程企业网站seo点击软件
  • 优秀的国外设计网站谷歌google下载安卓版 app
  • 福州网站建设服务价格最实惠搜索引擎优化seo专员
  • html5 国内网站建设seo教程
  • 自己做网站建议seo黑帽技术
  • 延吉网站建设优化师
  • 中国机械加工网加热炉节能西安网站seo哪家公司好
  • 睢宁县凌城做网站的如何在百度推广
  • flash做的网站青岛seo青岛黑八网络最强
  • 装饰设计网站建设百度seo正规优化
  • 网站怎么做三级的百度推广下载安装
  • 手机怎么做网站教程磁力宅
  • 计算机做网站开发需要什么证书石家庄抖音seo