`
ZavaKid
  • 浏览: 20786 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

分代回收

阅读更多

什么是分代 

当使用分代回收技术,内存会被分为几个代(generation)。也就是说,按照对象存活的年龄,把对象放到不同的代中。

使用最广泛的代,应属年轻代和年老代了。

根据各种GC算法的特征,可以相应的被应用到不同的代中。

研究发现:

  • 大部分的对象在分配后不久,就不被引用了。也就是,他们在很早就挂了。
  • 只有很少的对象熬过来了。

年轻代的GC相当的频繁,高效率并且快。因为年轻代通常比较小,并且很多对象都是不被引用的。

如果年轻代的对象熬过来了,那么就晋级到年老代中了。如图:

 



 

通常年老代要比年轻代大,而且增长也比较慢。所以GC在年老代发生的频率非常低,不过一旦发生,就会占据较长的时间。

总结

  • 年轻代通常使用时间占优的GC,因为年轻代的GC非常频繁
  • 年老代通常使用善于处理大空间的GC,因为年老代的空间大,GC频率低
  • 大小: 24.9 KB
分享到:
评论

相关推荐

    python分代回收.md

    ### Python 分代回收 #### 前言:Python 内存管理概述 Python 的内存管理主要依赖于其内部实现的垃圾回收机制。Python 使用了一种称为“私有堆”的存储空间来保存所有对象和数据结构。这个私有堆对开发者来说是不...

    java虚拟机分代回收图

    java虚拟机分代回收图

    Python垃圾回收机制

    为了优化标记清除,Python引入了分代回收(Generational Garbage Collection)策略。根据对象的生命周期,将内存分为新生代、老年代等不同的区域。新创建的对象通常先放入新生代,如果这些对象经过几次垃圾回收依然...

    android模拟内存分配与回收

    Android的垃圾回收器采用了分代回收策略,分为年轻代(Young Generation)和老年代(Old Generation),分别处理生命周期短和长的对象。 年轻代主要采用复制算法,将活跃对象从eden区复制到survivor区,清除不再...

    Java分代垃圾回收策略原理详解

    Java分代垃圾回收策略原理详解 Java分代垃圾回收策略原理详解是Java虚拟机中的一种垃圾回收机制,根据对象的生命周期不同,采用不同的回收方式,以提高回收效率。 为什么要分代 Java分代垃圾回收策略是基于这样一...

    Python垃圾回收机制简介.pdf

    为了解决循环引用问题,Python引入了两种额外的垃圾回收算法:标记清除和分代回收。标记清除算法基于可达性分析,它会标记所有从根节点(如全局变量和调用栈中的对象)可达的对象,然后清除未被标记的、不可达的对象...

    JVM内存管理和垃圾回收.pdf

    分代回收进一步细化了这一过程,将对象根据生存时间分配到不同代的堆中,年轻代适用于频繁回收的短生命周期对象,而年老代则保存较稳定的存在。 垃圾回收器的设计决策涉及几个关键点:顺序执行与并行执行、并发执行...

    JVM内存管理和垃圾回收知识.pdf

    分代回收进一步优化了这一过程,根据对象生命周期长短将其分配到不同代的堆,年轻代(包括Eden和Survivor区)用于短暂对象,老年代用于长期存活的对象。 JVM的垃圾回收器设计需要权衡性能和复杂性。顺序执行与并行...

    Python-内存管理与回收机制.pdf

    分代回收是将对象分为三个链表:0 代、1 代和 2 代。每个链表都有其自己的阈值,当链表中的对象数量超过阈值时,将触发一次扫描检查。如果发现垃圾对象,将其回收。 Python 对象可以分为两大类:不可变对象和可变...

    JVM内存管理和垃圾回收参考.pdf

    1.2. 分代回收 分代收集基于对象生命周期的不同阶段,将对象分配到不同的堆中,如新生代(Young Gen)、老年代(Old Gen)和永久代(Perm Gen,Java 8后改为元空间Metaspace)。年轻代中的对象生命周期较短,频繁...

    浅析Python垃圾回收机制.pdf

    Python中的垃圾回收机制主要以引用计数为主,标记清除和分代回收为辅,同时还有缓存机制。 1. 引用计数 Python中,所有对象都是通过PyObject这个C语言结构体来表示的,每个PyObject都包含四个属性:前后引用、引用...

    Python内存管理和垃圾回收笔记1

    为了解决这个问题,Python引入了标记清除和分代回收机制。 标记清除机制会在特定条件下检查一个专门用来存储可能有循环引用对象的链表,如果发现循环引用,就让双方的引用计数减1。如果减完后计数为0,就回收这两个...

    模拟设计段式存储管理的分配与回收

    综上所述,模拟设计段式存储管理的分配与回收涉及多个层次的策略和技术,包括静态与动态分配、空闲段管理、分代回收、段页式映射等。这些技术在现代操作系统中扮演着至关重要的角色,确保了系统性能和资源的有效利用...

    深度剖析:Go语言的垃圾回收机制

    为了优化这一点,Go 语言采用了多种技术,如分代回收、增量标记等方法来降低内存占用。 总之,Go 语言的垃圾回收机制是其强大功能的关键组成部分之一。通过深入理解其背后的工作原理和技术细节,开发者可以更好地...

    智慧废品回收系统小程序源码v2.5.4 废品分类回收一站式解决方案

    回收流程:用户下单-回收员就近抢单–上门回收-现场核对重量和种类价格–回收员可线下现金或线上回收市支付用户–将收到的废品交到合伙人设置的回收站高价回收赠取差价,合伙人收到所有的废品集中处置销售获得利润。

    JVM调优总结(4)分代垃圾回收Java开发Java经验技

    本篇文章将详细讲解"JVM调优总结(4)分代垃圾回收"这一主题,旨在帮助Java开发者掌握更加高效、稳定的应用运行策略。 一、分代垃圾回收理论基础 Java的内存管理主要依靠垃圾回收机制,它自动回收不再使用的对象,...

    智慧废品回收系统代理版小程序v2.5.7.rar

    《智慧废品回收系统代理版小程序v2.5.7》是针对废品回收行业推出的一款智能化管理工具,旨在提高废品回收效率,优化用户体验,同时也为代理提供更便捷的操作平台。该版本号为2.5.7,代表了产品在不断迭代升级中,...

    JVM内存管理面试常见问题全解.doc

    标记清除算法是最常用的垃圾回收算法,复制算法是将存活的对象复制到另外一个区域,标记整理算法是将存活的对象移动到堆的另外一个区域,分代回收法是将堆分代成不同的区域,每个区域使用不同的垃圾回收算法。...

    Understanding Java Garbage Collection

    因此,分代回收器将内存分为几个代,最常用的是新生代(Young Generation)和老年代(Old Generation)。新生代用于存放新创建的对象,当对象经历一定次数的垃圾回收仍然存活后,会被提升至老年代。这种机制可以优化...

Global site tag (gtag.js) - Google Analytics