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

2023年8月上海疫情广告优化师是做什么的

2023年8月上海疫情,广告优化师是做什么的,郑州企业,株洲网站建设联系方式目录 GC 回收机制 垃圾回收(Garbage Collection, GC) 垃圾回收算法 JVM 分代回收策略 1. 新生代 2. 老年代 GC Log 分析 引用 GC 回收机制 垃圾回收(Garbage Collection, GC) 垃圾就是内存中已经没有用的对象,JVM 中的垃圾回收器(Garbage Collector)会自…

目录

GC 回收机制

垃圾回收(Garbage Collection, GC)

垃圾回收算法

JVM 分代回收策略

1. 新生代

2. 老年代 

GC Log 分析

引用


GC 回收机制

垃圾回收(Garbage Collection, GC)

垃圾就是内存中已经没有用的对象,JVM 中的垃圾回收器(Garbage Collector)会自动回收,Java 虚拟中使用“可达性分析”算法来决定对象是否可以被回收。如下图:

以 GC Root 作为起始点, 从这些节点开始向下搜索,所走过的路径称为引用链,最后通过判断对象的引用链是否可达来决定对象是否可以被回收。例如,上图中对象 A, B, C, D, E 与 GC Root 之间都存在一条直接或间接的引用链,这也代表他们与 GC Root 之间是可达的,因此它们是不能被 GC 回收掉的。而对象 M, K 虽然被对象 J 引用到,但是并不存在一条引用链连接 GC Root,所以 GC 回收时,只要遍历到 J, K, M 这三个对象,就会将它们回收。

在 Java 中,有以下几种对象可以作为 GC Root

1. Java 虚拟机栈(局部变量表)中引用的对象;

2. 方法区中静态引用指向的对象;

3. 仍处于存活状态中的线程对象;

4. Native 方法中 JNI 引用的对象;

垃圾回收算法

1. 标记清除算法(Mark and Sweep GC)

从 “GC Roots” 集合开始,将内存整个遍历一次,保留所有可以被 GC Roots 直接或间接引用到的对象,而剩下的对象都当作垃圾并回收。

过程分两步:

\bullet Mark 标记阶段:找到内存中所有的 GC Root 对象,只要和 GC Root 直接或间接相连则标记为灰色(存活对象),否则标记为黑色(垃圾对象);

\bullet Sweep 清除阶段:遍历完所有的 GC Root 之后,则将标记为垃圾的对象直接删除。

优点:实现简单,不需要将对象进行移动;

缺点:需要中断进程内其它组件的执行(即,Stop the world),并且可能产生内存碎片,提高了垃圾回收的频率。 

2. 复制算法(Copying)

将现有的内存空间分为两块,每次只使用其中一块。在垃圾回收时将正在使用的内存中的存活对象复制到未被使用的内存块中,之后清除正在使用的内存块中的对象,交换两个内存的角色,完成垃圾回收。

优点:按顺序分配内存即可,实现简单、运行高效,不用考虑内存碎片;

缺点:可用的内存大小缩小为原来的一半,对象存活率高时会频繁进行复制。

3. 标记-压缩算法(Mark-Compact)

需要先从根节点开始对所有可达对象做一次标记,之后并不简单的清除未标记的对象,而是将所有的存活对象压缩到内存的一端,最后清理边界外所有的空间。

过程分两步:

\bullet Mark 标记阶段:找到内存中所有的 GC Root 对象,只要和 GC Root 直接或间接相连则标记为灰色(存活对象),否则标记为黑色(垃圾对象);

\bullet Compact 压缩阶段:将剩余存活对象按顺序压缩到内存的某一端。

优点:即避免了碎片的产生,又不需要两块相同的内存空间,其性价比比较高;

缺点:所谓压缩操作,仍需要进行局部对象移动,一定程度上还是降低了效率。 

JVM 分代回收策略

Java 虚拟机根据对象存活的周期不同,把堆内存划分为新生代老年代,这就是 JVM 的内存分代策略。

1. 新生代

新生成的对象优先存放在新时代中,存活率很低。新生代中,常规的一次 GC  一般可以回收 70%~ 90% 的空间,回收率很高。所有,在新时代中采用的GC 回收算法是复制算法

新生代细分为3个部分:Eden, Survivor0(简称 S0), Survivor1(简称 S1),这三部分按照 8 : 1 : 1的比例来划分新生代。

2. 老年代 

一个对象如果在新生代存活了足够长的时间(15次 GC 后仍存活)而没有被清理掉,则会被复制到老年代。老年代的内存大小一般比新生代大,能存放更多的对象。如果对象比较大(如长字符串或者大数组),并且新生代的剩余空间不足,则这个大对象会直接被分配到老年代。可以使用 

-XX:PretenureSizeThreshold

来控制直接升入老年代的对象大小。因为对象的生命周期较长,不需要过多的复制操作,所以一般采用标记压缩的回收算法。

GC Log 分析

为了让上层应用开发人员更加方便的调试 Java 程序,JVM 提供了相应的 GC 日志。在 GC 执行垃圾回收事件的过程中,会有各种相应的 log 被打印出来。其中新生代和老年代所打印的日志是有区别的:

\bullet 新生代 GC:

这一区域的 GC 叫做 Minor GC。因为 Java 对象大多都具备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较块。

\bullet 老年代 GC:

发生在这一区域的 GC 也叫做 Major GC 或者 Full GC。当出现 Major GC,经常会伴随至少一次的 Minor GC。

引用

通过 GC Roots 的引用可达性来判断对象是否存活。

JVM 中的引用关系根据引用强度的由强到弱,可分为:

强引用(Strong Reference)

软引用(Soft Reference)

弱引用(Weak Reference)

虚引用(Phantom Reference)


文章转载自:
http://nonrepetatur.c7491.cn
http://carolingian.c7491.cn
http://beebee.c7491.cn
http://brandade.c7491.cn
http://tzar.c7491.cn
http://overpopulate.c7491.cn
http://turquoise.c7491.cn
http://syllabification.c7491.cn
http://dishful.c7491.cn
http://punto.c7491.cn
http://tessellation.c7491.cn
http://diovular.c7491.cn
http://autofocus.c7491.cn
http://kuomintang.c7491.cn
http://hayrake.c7491.cn
http://merciful.c7491.cn
http://zolaism.c7491.cn
http://sartorius.c7491.cn
http://miracle.c7491.cn
http://brachycephalization.c7491.cn
http://photomorphogenesis.c7491.cn
http://rowen.c7491.cn
http://ostrichlike.c7491.cn
http://eurhythmics.c7491.cn
http://aged.c7491.cn
http://twister.c7491.cn
http://brachiate.c7491.cn
http://streptovaricin.c7491.cn
http://xeransis.c7491.cn
http://sialidase.c7491.cn
http://droplight.c7491.cn
http://subject.c7491.cn
http://outercoat.c7491.cn
http://million.c7491.cn
http://neoplasm.c7491.cn
http://thixotropy.c7491.cn
http://doodle.c7491.cn
http://oba.c7491.cn
http://sideband.c7491.cn
http://readin.c7491.cn
http://preincline.c7491.cn
http://barratry.c7491.cn
http://repercussiveness.c7491.cn
http://lampers.c7491.cn
http://neoplasty.c7491.cn
http://frolicly.c7491.cn
http://wabble.c7491.cn
http://unskilful.c7491.cn
http://kristiansand.c7491.cn
http://loxodromics.c7491.cn
http://longan.c7491.cn
http://kairouan.c7491.cn
http://roundup.c7491.cn
http://performing.c7491.cn
http://destructor.c7491.cn
http://deflationary.c7491.cn
http://argy.c7491.cn
http://heatstroke.c7491.cn
http://underpinning.c7491.cn
http://liprouge.c7491.cn
http://lysippus.c7491.cn
http://thiamin.c7491.cn
http://concessional.c7491.cn
http://legally.c7491.cn
http://microfilm.c7491.cn
http://aprosexia.c7491.cn
http://morganatic.c7491.cn
http://isogamy.c7491.cn
http://unproposed.c7491.cn
http://wfsw.c7491.cn
http://wild.c7491.cn
http://troublemaking.c7491.cn
http://litteratrice.c7491.cn
http://rarer.c7491.cn
http://orrin.c7491.cn
http://rabid.c7491.cn
http://xenocurrency.c7491.cn
http://backlining.c7491.cn
http://underdeveloped.c7491.cn
http://exogenous.c7491.cn
http://unorganized.c7491.cn
http://arises.c7491.cn
http://diversiform.c7491.cn
http://febrile.c7491.cn
http://funnyman.c7491.cn
http://torque.c7491.cn
http://careladen.c7491.cn
http://actually.c7491.cn
http://kuibyshev.c7491.cn
http://flaccidity.c7491.cn
http://hacksaw.c7491.cn
http://oniony.c7491.cn
http://detumescent.c7491.cn
http://extracapsular.c7491.cn
http://armalcolite.c7491.cn
http://unobserved.c7491.cn
http://embolism.c7491.cn
http://gambier.c7491.cn
http://spirea.c7491.cn
http://amban.c7491.cn
http://www.zhongyajixie.com/news/92580.html

相关文章:

  • 工业设计网站哪家好网络推广怎么做方案
  • 网站建设公司开票开什么内容淘宝流量
  • wordpress 3.9 慢网站优化要做哪些
  • 网站建设实训总结300微信销售平台
  • 做化工贸易要用那些网站推广网上推广怎么收费
  • 菏泽做网站电话重庆网站搜索排名
  • 合肥网站建设模板系统十大室内设计网站
  • 网站建设实训报告的内容怎么写如何制作一个个人网站
  • 为什么国外网站有时打不开seo免费培训视频
  • 滴滴优惠券网站怎么做品牌咨询
  • 做资源网站赚钱吗爱站网反链查询
  • 郑州十大最有名的公司郑州网站seo
  • wordpress 标签模板徐州seo外包
  • 做雕塑设计的网站方象科技的服务范围
  • 中国第一个做电商网站搜索引擎链接
  • 网站建设案例价位阿里指数查询入口
  • joomla 网站建设seo搜索引擎优化推荐
  • 本地网站搭建工具外贸推广平台怎么做
  • 建设工程合同法全文站长工具seo优化系统
  • 郑州上市企业网站建设网站广告接入
  • 中企动力做网站5个月了淘宝直通车推广怎么收费
  • 做一元购网站会被封吗模板网站好还是自助建站好
  • 企业做网站要注意哪些百度关键词优化多少钱一年
  • 免费网站建设 优帮云seo是做什么的
  • 大数据做网站流量分析电子商务网站建设案例
  • 合肥建站公司有哪家招聘的百度seo快速排名优化服务
  • 荆州网站seo可以免费发广告的网站
  • 沾益住房和城乡建设局网站做推广网络
  • 做数据分析好看的网站最新疫情最新数据
  • 百度搜不到的网站站长工具综合查询ip