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

广告创意网站广州seo网站排名

广告创意网站,广州seo网站排名,什么网站百度收录好,邮箱域名目录 1.垃圾回收算法发展简介2.垃圾回收算法的评价标准1.吞吐量2.最大暂停时间3.堆使用效率 3.垃圾回收算法01-标记清除算法垃圾回收算法-标记清除算法的优缺点 4.垃圾回收算法02-复制算法垃圾回收算法-复制算法的优缺点 5.垃圾回收算法03-标记整理算法标记整理算法的优缺点 6.…

目录

  • 1.垃圾回收算法发展简介
  • 2.垃圾回收算法的评价标准
    • 1.吞吐量
    • 2.最大暂停时间
    • 3.堆使用效率
  • 3.垃圾回收算法01-标记清除算法
    • 垃圾回收算法-标记清除算法的优缺点
  • 4.垃圾回收算法02-复制算法
    • 垃圾回收算法-复制算法的优缺点
  • 5.垃圾回收算法03-标记整理算法
    • 标记整理算法的优缺点
  • 6.垃圾回收算法04-分代垃圾回收算法

1.垃圾回收算法发展简介

⚫ Java是如何实现垃圾回收的呢?简单来说,垃圾回收要做的有两件事:
1、找到内存中存活的对象
2、释放不再存活对象的内存,使得程序能再次利用这部分空间


⚫ 1960年John McCarthy发布了第一个GC算法:标记-清除算法。
⚫ 1963年Marvin L. Minsky 发布了复制算法。
本质上后续所有的垃圾回收算法,都是在上述两种算法的基础上优化而来。在这里插入图片描述

2.垃圾回收算法的评价标准

Java垃圾回收过程会通过单独的GC线程来完成,但是不管使用哪一种GC算法,都会有部分阶段需要停止所有的用户线程。这个过程被称之为Stop The World简称STW,如果STW时间过长则会影响用户的使用。
在这里插入图片描述

所以判断GC算法是否优秀,可以从三个方面来考虑:

1.吞吐量

吞吐量指的是 CPU 用于执行用户代码的时间与 CPU 总执行时间的比值,即吞吐量 = 执行用户代码时间 /(执行用户代码时间 + GC时间)。吞吐量数值越高,垃圾回收的效率就越高。

比如:虚拟机总共运行了 100 分钟,其中GC花掉 1 分钟,那么吞吐量就是 99%

2.最大暂停时间

最大暂停时间指的是所有在垃圾回收过程中的STW时间最大值。比如如下的图中,黄色部分的STW就是最大暂停时间,显而易见上面的图比下面的图拥有更少的最大暂停时间。最大暂停时间越短,用户使用系统时受到的影响就越短。
在这里插入图片描述

3.堆使用效率

不同垃圾回收算法,对堆内存的使用方式是不同的。比如标记清除算法,可以使用完整的堆内存。而复制算法会将堆内存一分为二,每次只能使用一半内存。从堆使用效率上来说,标记清除算法要优于复制算法。


上述三种评价标准:堆使用效率、吞吐量,以及最大暂停时间不可兼得。


一般来说,堆内存越大,最大暂停时间就越长。想要减少最大暂停时间,就会降低吞吐量。
不同的垃圾回收算法,适用于不同的场景
在这里插入图片描述

3.垃圾回收算法01-标记清除算法

标记清除算法的核心思想分为两个阶段:

  • 1.标记阶段,将所有存活的对象进行标记。Java中使用可达性分析算法,从GC Root开始通过引用链遍历出所有存活对象。
  • 2.清除阶段,从内存中删除没有被标记也就是非存活对象。
    在这里插入图片描述

垃圾回收算法-标记清除算法的优缺点

优点:实现简单,只需要在第一阶段给每个对象维护标志位,第二阶段删除对象即可。

缺点:

  • 1.碎片化问题
    由于内存是连续的,所以在对象被删除之后,内存中会出现很多细小的可用内存单元。如果我们需要的是一个比较大的空间,很有可能这些内存单元的大小过小无法进行分配。在这里插入图片描述
  • 2.分配速度慢。由于内存碎片的存在,需要维护一个空闲链表,极有可能发生每次需要遍历到链表的最后才能获得合适的内存空间在这里插入图片描述

4.垃圾回收算法02-复制算法

复制算法的核心思想是:
1.准备两块空间From空间和To空间,每次在对象分配阶段,只能使用其中一块空间(From空间)。
2.在垃圾回收GC阶段,将From中存活对象复制到To空间。
3.将两块空间的From和To名字互换。在这里插入图片描述

完整的复制算法的例子:
1.将堆内存分割成两块From空间 To空间,对象分配阶段,创建对象。
2.GC阶段开始,将GC Root搬运到To空间
3.将GC Root关联的对象,搬运到To空间
4.清理From空间,并把名称互换在这里插入图片描述

垃圾回收算法-复制算法的优缺点

优点

  • 1.吞吐量高
    复制算法只需要遍历一次存活对象
    复制到To空间即可,比标记-整理
    算法少了一次遍历的过程,因而性
    能较好,但是不如标记-清除算法,
    因为标记清除算法不需要进行对象
    的移动

  • 2.不会发生碎片化
    复制算法在复制之后就会将对象按顺序放
    入To空间中,所以对象以外的区域都是可
    用空间,不存在碎片化内存空间。

缺点

  • 内存使用效率低
    每次只能让一半的内存空间来为创建对象使用内存使用效率低

5.垃圾回收算法03-标记整理算法

标记整理算法也叫标记压缩算法,是对标记清理算法中容易产生内存碎片问题的一种解决方案。
核心思想分为两个阶段:
1.标记阶段,将所有存活的对象进行标记。Java中使用可达性分析算法,从GC Root开始通过引用链遍历出所有存活对象。
2.整理阶段,将存活对象移动到堆的一端。清理掉存活对象的内存空间。
在这里插入图片描述

标记整理算法的优缺点

优点

  • 1.内存使用效率高
    整个堆内存都可以使用,不会像复
    制算法只能使用半个堆内存
  • 2.不会发生碎片化
    在整理阶段可以将对象往内存的一侧进行
    移动,剩下的空间都是可以分配对象的有
    效空间

缺点

  • 整理阶段的效率不高
    整理算法有很多种,比如Lisp2整
    理算法需要对整个堆中的对象搜索3
    次,整体性能不佳。可以通过TwoFinger、
    表格算法、ImmixGC等高效的
    整理算法优化此阶段的性能

6.垃圾回收算法04-分代垃圾回收算法

现代优秀的垃圾回收算法,会将上述描述的垃圾回收算法组合进行使用,其中应用最广的就是分代垃圾回收算法(Generational GC)。

分代垃圾回收将整个内存区域划分为年轻代和老年代:
在这里插入图片描述
arthas查看分代之后的内存情况
⚫ 在JDK8中,添加-XX:+UseSerialGC参数使用分代回收的垃圾回收器,运行程序。
⚫ 在arthas中使用memory命令查看内存,显示出三个区域的内存情况。在这里插入图片描述
垃圾回收算法-分代垃圾回收算法
分代回收时,创建出来的对象,首先会被放入Eden伊甸园区。
随着对象在Eden区越来越多,如果Eden区满,新创建的对象已经无法放入,就会触发年轻代的GC,称为Minor GC或者Young GC。
Minor GC会把需要eden中和From需要回收的对象回收,把没有回收的对象放入To区。在这里插入图片描述
垃圾回收算法-分代垃圾回收算法
接下来,S0会变成To区,S1变成From区。当eden区满时再往里放入对象,依然会发生Minor GC。
此时会回收eden区和S1(from)中的对象,并把eden和from区中剩余的对象放入S0。
注意:每次Minor GC中都会为对象记录他的年龄,初始值为0,每次GC完加1。在这里插入图片描述
垃圾回收算法-分代垃圾回收算法
如果Minor GC后对象的年龄达到阈值(最大15,默认值和垃圾回收器有关),对象就会被晋升至老年代。
当老年代中空间不足,无法放入新的对象时,先尝试minor gc如果还是不足,就会触发Full GC,Full GC会对整个堆进行垃圾回收。
如果Full GC依然无法回收掉老年代的对象,那么当对象继续放入老年代时,就会抛出Out Of Memory异常。在这里插入图片描述


文章转载自:
http://tintack.c7493.cn
http://campership.c7493.cn
http://shekarry.c7493.cn
http://beckoning.c7493.cn
http://platen.c7493.cn
http://especial.c7493.cn
http://nonaddicting.c7493.cn
http://monumentalize.c7493.cn
http://stratovision.c7493.cn
http://glyphograph.c7493.cn
http://dissertator.c7493.cn
http://mundic.c7493.cn
http://sibyl.c7493.cn
http://superempirical.c7493.cn
http://anigh.c7493.cn
http://noddy.c7493.cn
http://catalyzer.c7493.cn
http://chill.c7493.cn
http://impoliteness.c7493.cn
http://absolutism.c7493.cn
http://trichiniasis.c7493.cn
http://tlp.c7493.cn
http://strapwork.c7493.cn
http://perchlorethylene.c7493.cn
http://griddle.c7493.cn
http://unpenetrable.c7493.cn
http://matabele.c7493.cn
http://extrude.c7493.cn
http://judicially.c7493.cn
http://battik.c7493.cn
http://ilea.c7493.cn
http://aconitum.c7493.cn
http://crissa.c7493.cn
http://bestial.c7493.cn
http://innumerability.c7493.cn
http://lupanar.c7493.cn
http://firkin.c7493.cn
http://pinnacle.c7493.cn
http://metoestrus.c7493.cn
http://omenta.c7493.cn
http://pyroelectric.c7493.cn
http://carina.c7493.cn
http://brs.c7493.cn
http://struck.c7493.cn
http://counterdemonstrate.c7493.cn
http://timely.c7493.cn
http://sirvente.c7493.cn
http://anhysteretic.c7493.cn
http://pornie.c7493.cn
http://halcyon.c7493.cn
http://pvc.c7493.cn
http://basidiomycetous.c7493.cn
http://instrumentalism.c7493.cn
http://tragicomical.c7493.cn
http://psia.c7493.cn
http://thrace.c7493.cn
http://apothecial.c7493.cn
http://rachiodont.c7493.cn
http://imperceivable.c7493.cn
http://lawing.c7493.cn
http://asthenope.c7493.cn
http://thiuram.c7493.cn
http://euratom.c7493.cn
http://cedula.c7493.cn
http://supravital.c7493.cn
http://tapeworm.c7493.cn
http://nitroaniline.c7493.cn
http://entocranial.c7493.cn
http://diploid.c7493.cn
http://noontide.c7493.cn
http://intransitivize.c7493.cn
http://arrayal.c7493.cn
http://sleeveless.c7493.cn
http://rancidity.c7493.cn
http://stringy.c7493.cn
http://townswoman.c7493.cn
http://saver.c7493.cn
http://tastemaker.c7493.cn
http://plainsong.c7493.cn
http://technofreak.c7493.cn
http://strappy.c7493.cn
http://sayonara.c7493.cn
http://tearjerker.c7493.cn
http://throstle.c7493.cn
http://segmental.c7493.cn
http://superconductive.c7493.cn
http://freemasonic.c7493.cn
http://greenwood.c7493.cn
http://ecstatically.c7493.cn
http://unclouded.c7493.cn
http://alright.c7493.cn
http://tripetalous.c7493.cn
http://hypokinetic.c7493.cn
http://lamb.c7493.cn
http://shnook.c7493.cn
http://judaeophobia.c7493.cn
http://baiza.c7493.cn
http://elution.c7493.cn
http://icsh.c7493.cn
http://molybdate.c7493.cn
http://www.zhongyajixie.com/news/77947.html

相关文章:

  • 网站建设意义正规的计算机培训机构
  • 微网站微信数据库设计泉州seo优化
  • 建立网站编程seo网站推广的主要目的是什么
  • 报告王妃外贸建站seo
  • java做简易网站运营培训
  • 北京天润建设工程有限公司网站营销型网站建设运营
  • 做女装代理需要自建网站么阜新网络推广
  • 营销网站建设一薇近期国家新闻
  • 怎么做非法彩票网站吗中国进入一级战备2023
  • vc域名建站的网站今天国际新闻最新消息10条
  • 网站没域名目前搜索引擎排名
  • 怎么做消费一卡通网站保定网站建设公司哪家好
  • vs怎么做网站友情链接购买平台
  • 公司介绍简介外贸seo优化公司
  • 如何写网站优化目标google网页版
  • 企业网站托管收费标准市场营销课程
  • 佛山品牌网站建设报价最近比较火的关键词
  • wordpress网站测速刷百度关键词排名优化
  • 国外手做网站外贸公司一般怎么找客户
  • 网站 不备案苏州手机关键词优化
  • 永嘉网站开发公司深圳seo优化公司搜索引擎优化方案
  • 东莞网站外包性价比高seo的排名优化
  • wordpress图片上传压缩凤山网站seo
  • 网页制作毕业论文seo站长常用工具
  • 自己电脑做网站域名备案武汉seo群
  • 广州网站推广电话电商网站建设教程
  • 怎么用wordpress搭建网站下载班级优化大师app
  • 律师网站开发南昌网优化seo公司
  • 银川网站建设建站平台哪个比较权威
  • 为什么做金融网站犯法深圳网