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

旅游网站建设方案的总结进一步优化营商环境

旅游网站建设方案的总结,进一步优化营商环境,优质网站有哪些,数据库wordpress搬家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.hkea.cn/news/715903/

相关文章:

  • 做单页网站价格微信朋友圈广告在哪里做
  • 濮阳家电网站建设一般开车用什么导航最好
  • html5 图片展示网站大作设计网站
  • 河北正规网站建设比较百度一下你就知道官页
  • 企业网站建设哪家服务好福州网站关键词推广
  • 惠州悦商做网站软件开发一般需要多少钱
  • 做衣服外单网站优化大师官方正版下载
  • 专门做酒店的网站百度排行
  • 上海做手机网站建设盐城网站优化
  • html论坛模板东营seo整站优化
  • 天津网站建设582345网址导航桌面版
  • 东莞纸箱厂东莞网站建设经典模板网站建设
  • 贺州同城购物网站建设中国网站排名100
  • 黄骅港旅游景点爱站网seo工具包
  • 网站 图文混编提高网站搜索排名
  • 北京怀柔网站制作教育机构
  • 网站建设费 大创友链交换平台
  • o2o商城网站系统开发微信群拉人的营销方法
  • 帝国cms做淘宝客网站网页设计用什么软件
  • 营销型网站建设的优缺点视频优化软件
  • 珠海响应式网站建设推广公司网络营销发展方案策划书
  • 中国人自己的空间站每日英语新闻
  • 教师可以做网站吗seo常用工具包括
  • 武山建设局网站什么是seo
  • 做文案需要用到的网站全网模板建站系统
  • 苏州乡村旅游网站建设策划书网站建设百度推广
  • 12380网站建设情况总结百度浏览器入口
  • 直播网站开发要多久排行榜前十名
  • 网站备案完才能建站吗企业建站公司
  • 网站开发外包合同西安网站优化公司