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

网站建设步骤流程详细介绍网站加seo需要多少钱

网站建设步骤流程详细介绍,网站加seo需要多少钱,新主题 老版本 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.yayakq.cn/news/768852/

相关文章:

  • 邢台集团网站建设费用新建wordpress模板
  • 网站倒计时怎么做网站风格配置怎么做
  • 电影网站怎么建设灰色网站设计
  • 外包公司做的网站怎么改密码学校网站开发图片素材
  • 做一小说网站要花多钱如何让网站快速收录你
  • 做影视网站赚钱吗网站seo优化服务
  • 做公司网站的价格邮件模板网站
  • 郑州做网站企业北京建筑人才招聘网
  • 郑州做网站那家做的好什么是网站开发公司电话
  • 深圳网站建设延安网站建设 東道网络
  • 杭州教育网站建设科普类网站怎么做
  • 厦门模板建站网站开发工程师培训
  • 好的网站制作wordpress网盘
  • 手机网站怎么开发安顺高端网站建设平台
  • 潍坊专业网站建设价格低秦皇岛海三建设集团
  • 建设银行网站用什么字体wordpress去除 版权信息
  • 上海一 网站建设公司网站建设相关工作
  • 从seo角度做网站流量企业网站建设很有必要
  • flash 如何做游戏下载网站策划公司网站设计
  • 学校网站建设的软件环境网页制作与网站建设作业
  • 做网站和维护网站从用户旅程角度做网站分析
  • 网站建设教程百度云做360手机网站首页
  • 用php做网站需要什么软件东营市报名系统网站设计公司
  • 网站推广塔山双喜开发一个小程序的流程
  • 苏州高端网站建设公司网页视频下载神器哪种最好
  • 邯郸个人做网站google网站推广
  • 网博士自助建站系统学设计的网站都有哪些
  • 谁做网站个人网站模板大全
  • 泰州做企业网站的哪里好做网站是不是就能上传东西
  • 产品包装设计网站网站建设制作设计惠州