范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

JVM中GC原理解析

  1.1什么是GC
  GC可以理解为在追踪仍然使用的所有对象,并将其余对象标记为垃圾然后进行回收,这样的一个过程称之为GC,所有的GC系统可以从如下几个方面进行实现
  1.GC判断策略(例如引用计数,对象可达)
  2.GC收集算法(标记清除法,标记清除整理法,标记复制清除法,分带法)
  3.GC收集器(例如Serial,Parallel,CMS,G1)
  1.3手动GC
  什么是手动GC呢?即是手动为对象分配内存并回收内存
  如下这是一个简单的手动内存管理C编写的示例
  int send_request() {
  size_t n = read_size();
  int *elements = malloc(n * sizeof(int));
  if(read_elements(n, elements) < n) {
  // elements not freed!
  return -1;
  }
  // …
  free (elements)
  return  0 ;
  }
  手动GC忘记释放内存是常有的事情。这样的话会直接导致内存泄露。 1.4自动GC
  什么是自动GC呢?
  自动GC一般是由系统自动对内存进行管理 引用计数法
  其中:
  1、绿色云表示它们指向的对象仍然由程序员使用。
  2、蓝色圆圈是内存中的活动对象,其中的数字表示其引用计数
  3、灰色圆圈是未从任何明确使用的对象引用的对象
  对于引用计数法,有一个很大的缺陷就是循环引用,例如:
  其中红色对象实际上是应用程序不使用的垃圾。但是由于引用计数的限制,它们不符合垃圾回收原理,所以仍然存在内存中,导致内存泄露。 标记清除法
  标记清除通常有两个步骤:
  1.标记正在遍历所有可达的对象
  2.清除不可达对象占用的内存地址
  这种方法就完美解决了对象之间循环依赖的问题,但是存在短时间的线程暂停。 二、JAVA中的GC分析2.1、碎片与压缩
  JVM在垃圾回收过程中可能会产生大量碎片,为了提供其读写性能,需要对碎片进行压缩
  例如:
  2.2、分代设想
  我们知道垃圾收集要停止应用程序的运行,那么如果这个收集过程需要的时间很长,就会对应用程序产生很大的性能问题,如何解决这个问题呢?通过实验发现内存中的对象可以将其分为两大类:
  1.存活时间较短(这样的对象比较大)
  2.存活时间较长(这样的对象量比较小)
  基于对如上问题的分析,通过了解科学家提出了分代回收思路(年轻代,老年代,永久代),同时缩小垃圾回收范围。
  例如:
  2.3、GC模式分析
  垃圾收集事件(Garbage Collection events)通常分为:
  1.Minor GC (小型GC):年轻代GC事件
  2.Major GC(大型GC):老年代GC事件
  3.Full GC (完全GC):整个堆的GC事件 三.GC算法基础3.1、标记可达对象
  现在的GC算法基本都是要从标记可达对象开始(Marking Reachable Objects)
  例如:
  GC一般会设置一些特定对象为GC的根对象,例如:
  1.栈中的变量
  2.常量池中的引用
  .....
  GC基于根对象标记可访问对象(蓝色表示),对于不可达对象GC会认为是垃圾回收对象。 3.2、移除不可达对象
  移除不可达对象(Removing Unused Objects)时会因GC算法的不同而不同,但是所有的GC操作一般都可以分为三组:清除(Sweep),压缩(Compact),复制(Copy)
  清除(Sweep)
  压缩(Compact)
  复制(Copy)
  复制算法会基于标记清除压缩算法,创建新的内存空间用于存储幸存对象,同时可以复制与标记同时并发执行。这样可以较少GC时系统的暂停时间,提高系统性能 四、GC算法实现
  现在对于JVM中的GC算法两大类:一类负责收集年轻代,一类负责收集老年代。假如没有显式指定垃圾回收算法,一般会采用系统平台默认算法,当然也可以自己指定,下面是JDK8中的一些垃圾回收算法应用组合如下:
  Young
  Tenured
  JVM options
  Serial
  Serial
  -XX:+UseSerialGC
  Parallel Scavenge
  Parallel Old
  -XX:+UseParallelGC -XX:+UseParallelOldGC
  Parallel New
  CMS
  -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
  G1
  -XX:+UseG1GC
  以上四种GC组合是现阶段最突出的几种方式。
  4.1、Serial GC
  Serial GC(串行收集器)应用特点:
  1.内部只使用一个线程去回收(不能充分利用CPU的多核特性),无法并行化
  2.GC过程可能会产生较长的时间停顿
  3.Serial GC(串行收集器)算法应用:
  3.1 新生代复制算法(新生代存活对象较少)
  3.2 老年代标记-压缩算法(老年代对象回收较少,容易产生碎片)
  Serial GC(串行收集器)场景应用:
  a.应用在具体几百兆字节大小的JVM
  b.应用在知有单个CPU的环境中
  Serial GC(串行收集器)应用参数实践:
  java -xx:+UseSerialGC com.mypackages.MyExecutableClass
  Serial GC模式分析:
  1.Minor GC
  2.Full GC
  4.2、Parallel GC
  并行收集器应用特点:
  1.可利用cpu的多核特性,可并行化执行GC操作。
  2.在GC期间,所有cpu内核都在并行清理垃圾,所以暂停时间较短。
  Parallel GC (并行收集器)算法应用:
  1.在年轻代使用 标记-复制(mark-copy)算法:
  1.在老年代使用 标记清除整理(mark-sweep-compact)算法
  Parallel GC(并行收集器)场景应用:
  1.应用于多核处理器,执行并行收集提高吞吐量。
  2.GC操作仍需暂停应用程序,所以不适合低延迟场景
  Parallel GC(并行收集器)模式分析:(事件分析)
  1.Minor GC
  2.Full GC
  4.3、Concurrent Mark and Sweep (CMS)
  即 标记-清除-垃圾收集器
  CMS收集器特点:(避免在老年代垃圾收集时出现长时间卡顿)
  1.使用空闲列表管理内存空间的回收,不对老年代进行整理
  2在标记-清除阶段大部分工作和应用线程一起并发执行。
  CMS算法应用:
  1.年轻代采用并行STW方式的mark-copy(标记-复制)算法
  2老年代主要使用并发 mark-sweep(标记-清除)算法。
  CMS场景应用
  1.应用于多核处理器,目标降低延迟,缩短停顿时间
  2.cpu受限场景下,会与应用线程竞争cpu,吞吐量会减少
  CMS关键阶段可以分为4个步骤:
  1.初始标记 (CMS initial mark)
  2.并发标记 ( CMS concurrent mark)
  3.重新标记 ( CMS remark)
  4.并发清除 (CMS concurrent sweep)
  其中初始标记,重新标记这连个步骤仍然需要 "Stop The World" 初始标记仅仅只是标记GC Roots或yong gen能够直接关联到的对象,速度很快。
  并发标记阶段就是进行GC Roots Tracin的过程,在此阶段,垃圾收集器遍历老年代,标记所有的存活对象,从前一阶段InitialMark找到的root根开始算起。
  并发预清理(重新标记)阶段则是为了修正并发标记期间,因用户程序继续运作而导致冰机产生变动的那一部分的标记记录,这个阶段的停顿时间一般会比初始标记阶段长一些,但远比并发标记时间短。
  在预清理阶段,这些脏对象会被统计出来,从他们可达对象也被标记下来,此阶段完成后,用标记的card也就会被清空。
  并发清除此阶段与应用程序并发执行,不需要STW停顿。目的是删除未使用的对象,并回收他们占用的空间
  由于整个过程中耗时最长的并发标记和并发清除过程中,收集器线程都可以与用户线程一起工作,所以总体上来说,CMS收集器的内存回收过程是与用户线程一起并发执行
  私信666领取资料

盘点下半年将发布的旗舰机型,苹果小米令人期待,魅族还有机会吗每年下半年各大手机厂商都会发布自己的年度旗舰,从目前的市场情况来看,搭载骁龙8gen1的旗舰机普遍表现一般,主要是这颗芯片的发热和功耗实在难以令人满意,但即便如此,下半年即将发布的国产手机市场份额全球第一,又传来一个好消息,未来将引领世界2022世界移动通信大会在西班牙巴塞罗那举行,众多中国手机制造厂商参展,并带来了大量的新产品,吸引了世界的目光。国产手机这几年的成绩可谓是有目共睹!根据华尔街日报报道,目前中国手机小屏党慎入2022年值得买热门大屏手机推荐手机之家导购俗话说萝卜白菜各有所爱,有的用户喜欢小屏幕手机,但是更多人还是喜欢大屏手机。无论是影音爱好者还是游戏爱好者,在观看视频资讯,打游戏时的操作大屏手机带来的观感都是小屏幕手有钱的发钱,没钱的涨价长安汽车中科曙光中大力德创益通中环股份晶澳科技德方纳米松塔财经最及时有效中立客观的财经公告和公开讯息解读。1长安汽车公司新能源车型UNIKiDD售价将上调6000元。概述松塔财经获悉,4月15日,长安汽车(000625。SZ)官微发布一次仲裁引发的争议比特币是虚拟财产吗?是否受我国法律保护?21世纪经济报道记者朱英子北京报道4月14日,北京德恒律师事务所律师刘扬在其个人微信公众号上发表了一篇题为北京仲裁委比特币属于虚拟财产,受到法律保护的文章引发广泛关注。根据其在文章与飞利浦达成和解小米知产战略助力技术创新发展小米与飞利浦多年诉讼达成和解,小米全球知识产权风险应对力持续增强,为全球创新技术发展提供更优质的知识产权合作范本。近日,多方信息显示,小米已与飞利浦就UMTS和LTE(即3G和4G马斯克惦记上了推特,想通过资本收购获得推特的控制权马斯克惦记上了推特,想通过资本收购获得推特的控制权,并开源推特代码,使其成为去中心化的WEB3社交软件,作价54。2美元每股,随后孙宇晨迅速跟上,提供美股60美元的价格将推特私有化中医药AI大脑开放数据接口国粹普惠,以慰初心不讲故事,只求实效。中医药AI大脑开放数据接口,为中医药企事业单位提供数据服务。OpenAPIver1。x开放的智能数据接口有1根据性别年龄一组症状获取可能关联的轻薄便携画质鲜艳,雕塑家MF16LC显示器体验要说起来,现在的我们因为有了手机和笔记本电脑这一类的设备,日常生活和办公都轻松了很多。但随之而来的工作的任务也变得更加繁重,有时仅凭这些设备,已经不能做到高效率办公。前段时间发现身人才脱钩战来临微软停招18所中国高校学生在中美关系日益紧张,两国百年国运大战逐渐展开的敏感时刻,改革开放以来对中国信息产业发展最为支持的美国企业微软,也开始执行美国政府实体黑名单政令,对包括国防七子和一邮在内的18所中国现代的人们闲来就用滑屏打发时间,手机就等同于鸦片,你认同吗?各有所需,利弊共存。玩手机的人终究被手机所玩,用手机的人,最终将手机为自己所用!认同认同这个说法,戒不了了。认同!男女老少都这样,你不妨看看公共场所的人们,有几个不是在弄手机啊!泪
刘作虎向潜规则开刀?618高配版优惠才是真良心一年一度的618还有最后几个小时就要开始了,相信大家都已经选购好了自己心仪的东西,就等待付尾款了。618作为年中大促,最早由京东发起,手机自然成了这场购物节的主角。但不知道大家有没支持数十款机型!鸿蒙系统尝鲜计划出炉,荣耀用户要失望了鸿蒙系统是华为在2019年开发者大会上发布的分布式操作系统,其最大的特点就是多终端分布式。其不仅可以运行在手机上,电视和其它智能家居产品都可以运行,实现多设备协同工作,从而实现万物失去华为的光环,荣耀却把目标定成全球第一,5G旗舰已在路上数据显示,荣耀从一个全新的品牌,到年出货量超7000万,仅用了短短8年的时间。在荣耀飞速成长的背后,华为功不可没。但同样,在华为手机业务受困后,荣耀作为华为子品牌也无可避免地受到了主播二驴老婆卖山寨机,一月销售4。7亿元。二驴为什么这么嚣张?近日快手主播驴嫂平荣在直播中带货一款叫做朵唯12Pro的手机。更是在直播中大喊原价4999的朵唯手机,只要在直播间购买,只要999元。就这还有优惠,驴嫂平荣大喊自己拿钱再补贴100鸿蒙OS正式版首批名单曝光,适配速度让人意外,8款机型恭喜了华为将会在6月2号晚上召开新品发布会,已经确定的产品包括鸿蒙OS2。0正式版,以及新款的华为Watch3,以及MatepadPro2。如果你对华为的新品感兴趣,那么两款定位旗舰级别谷歌ampampquot除名ampampquot华为!华为彻底无缘新版安卓12系统鸿蒙OS迎来最佳机遇5月29日讯相信大家都知道,针对来势汹汹的华为鸿蒙OS系统,谷歌也在近日正式发布了新一代Android12系统,这也是谷歌发布第十二个大版本的Android12系统,也是目前全球第京东物流上市!或许将改写食品行业?5月28日,京东物流在港股上市,开盘涨14,市值2820亿港元,成为中国第二值钱的物流公司,仅次于顺丰。大众对于京东物流的印象,更多地停留在京东商城很多商品能够做到当天下单,当天送一加618玩大了新旗舰立减500换机补贴,苹果用户也可以旧换新今年的618年中大促提前登场,不少厂商已经正式开始相关福利活动,让人意外的是,降低力度相较往年更猛了。以一加为例,以往这家品牌参加电商活动时,新品根本不会降价,不过今年在销售方式上如何绕过苹果手机AppleID激活手机?分享两个免费绕ID的软件有很多人使用iPhone久了以后就会忘记自己的AppleID密码,或者手机长时间不用后忘记了密码,或者捡到了苹果手机后打不开,需要AppleID才能打开,苹果手机刷机以后需要通过A本轮牛市走到哪了?自去年12月中旬比特币突破2万美元历史最高价算起,12月2月是比特币快速上涨阶段,到达2月底涨速就放慢了,真正暴涨的时间只有12月中旬2月底这段时间。慢慢到4月中旬,比特币才触及6vivoX60Pro样张专业影像表现,原相机直出即大片去年,vivo成功携手卡尔蔡司的消息,也一度成为了数码的焦点话题。在不久后,双方的首项合作成果vivoX60系列顺利落地。而该系列中的高端影像旗舰vivoX60Pro,也在今年年初