剧情奥秘致力为广大影视爱好者提供电视剧电影未完剧情揭秘
你好,请登录

主流的垃圾回收机制都有哪些?优质

955次浏览| 2022-06-29 00:21:06 更新
来源:互联网
3个回答
满意答案
162 0

总的来说,GC 可以有很多种分类方式:有一部分 GC 一定要遍历需要 GC 的对象的图,从而获得一个精确的哪个对象活着哪个对象死了的信息。我们称这种 GC 为 tracing GC,不需要遍历的称为 non-tracing GC (比如 reference counting,它只能获得一个近似的信息,所以无法处理图里的环)。有的 GC 需要程序员/编译器提供合作,以精确的知道哪个 pointer 是对象(指需要 GC 的对象)。有的 GC 不需要,光靠猜(猜也是很难的!猜不出来就只能当做是 pointer 了),也能做到 GC。前者称之为 precise GC,后者称之为 conservative GC(比如 Boehm GC)。我们下面主要讨论 precise GC。有的 GC 分配了内存之后,这块内存可能会被移动到另外一个地方去,防止内存碎片化,提高缓存局部性(cache locality,这个怎么翻译呢..),这种 GC 被称为 moving GC,而不这么做的 GC 就称为 non-moving GC。moving GC 自然都是 tracing GC,因为它们必须要知道怎么遍历需要 GC 的对象的图,不然没法移动(毕竟移动某个对象的时候,也要修改存有这个对象的地方的值,指向新的位置)。有的 GC 一次处理整个对象图,有的 GC 则做了优化,一部分时间只处理较新的对象。这个优化是建立在一个现象上的:新的对象比较容易指向老的对象,而老的对象较少指向新的对象;新的对象比较容易死掉,而活了比较久的对象则很有可能会活更久。很多编程的方式都会造成这种现象比如 immutable data structures那么针对性的,GC 就可以区分对象的年纪,把内存分配的区域分为(较大的)老区和(较小的,为了缓存局部性)新区,然后根据老区满了与否,每次 GC 判断到底是只需要 GC 新区还是全都需要 GC。

垃圾回收的前提是确认哪些需要被回收,主要有两大算法。一个是引用计数法,一个对象增加一个引用计数加一,计数为0就被判定可以被回收了,主要的缺点是当两个对象相互引用的时候这时候虽然计数不为一但依然是可以被回收的。所以出现了java虚拟机常用的另外一种算法,状态可达法,从某一些根节点开始,根据引用关系画一个关系图,在所有关系图之外的就可认为是可回收的垃圾了。结合以上两种确认是否可以回收的算法可以有不同的回收机制,主要有标记_清除,标记_整理,复制,分代回收等几种回收机制。主流的都是相结合起来用,老年代用标记清除,新生代用复制回收。

引用计数GC处理什么是引用计数。引用计数是一种垃圾回收的形式,每一个对象都会有一个计数来记录有多少指向它的引用。其引用计数会变换如下面的场景。当对象增加一个引用,比如赋值给变量,属性或者传入一个方法,引用计数执行加1运算。当对象减少一个引用,比如变量离开作用域,属性被赋值为另一个对象引用,属性所在的对象被回收或者之前传入参数的方法返回,引用计数执行减1操作。当引用计数变为0,代表该对象不被引用,可以标记成垃圾进行回收。引用遍历GC处理什么是引用对象遍历。

收到955个赞
最新文章
主流的垃圾回收机制都有哪些?
主流的垃圾回收机制都有哪些?
追剧小科普06-29
娱乐影视通
娱乐影视通
955
心灵比较成熟人是否会少发朋友圈?
心灵比较成熟人是否会少发朋友圈?
追剧小科普06-29
大话戏游记
大话戏游记
239
上高速时需要知道什么呢?
上高速时需要知道什么呢?
追剧小科普06-29
电竞二营长
电竞二营长
867
从事建筑活动的专业技术人员应具备什么条件?
从事建筑活动的专业技术人员应具备什么条件?
追剧小科普06-29
游戏老斯鸡
游戏老斯鸡
443
所有的鴨嘴龙都长有羽冠吗?
所有的鴨嘴龙都长有羽冠吗?
追剧小科普06-29
喷子贱
喷子贱
790
家住小区没电了怎么办?
家住小区没电了怎么办?
追剧小科普06-29
八卦首席官
八卦首席官
651
终结者2审判日跳哪里好?
终结者2审判日跳哪里好?
追剧小科普06-29
游戏圈快递
游戏圈快递
513
如何识破网络谣言?
如何识破网络谣言?
追剧小科普06-29
王者小窝
王者小窝
686
春运火车票怎么抢?
春运火车票怎么抢?
追剧小科普06-29
游戏圈那点事
游戏圈那点事
552
说真的,你会给喜欢的网络主播打赏吗?
说真的,你会给喜欢的网络主播打赏吗?
追剧小科普06-29
三更老农
三更老农
230

三更老农

还没有个性签名哟
作者
关于我们 | 版权声明 | 免责声明 | 联系我们
免责声明:所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,内容仅代表作者本人意见,若因此产生任何纠纷作者本人负责,本站亦不为其版权负责! 如有问题,请联系我们
CopyRight©1999-2013 WWW.YI2.NET All Right Reserved 湘ICP备16020439号-1