[JVM篇]分代垃圾回收

分代垃圾回收

分代收集法 是目前大部分 JVM 所采用的方法,其核心思想是根据对象存活的不同生命周期将内存划分为不同的域,一般情况下将 GC 堆划分为老生代 (Tenured/Old Generation)和新生代(Young Generation)。老生代的特点是每次垃圾回收时只有少量对象需要被回收,新生代的特点是每次垃圾回收时都有大量垃圾需要被回收,因此可以根据不同区域选择不同的算法。

新生代(标记-复制算法)

每次垃圾收集都能发现新生代存活对象特别少,只有少量存活,死去对象特别多,因此选用"标记-复制算法",只需付出少量存活对象的复制成本就可以完成收集。

老年代(标记-整理算法)

老年代活着的对象特别多,适用于"标记-整理"或"标记-清除"算法。

因为对象存活率高,没有额外空间对它进行分配担保,就必须采用"标记-整理"或"标记-清除"算法来进行回收,不必进行内存复制,且直接腾出空闲内存。

相关推荐
2401_8318249624 分钟前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
2401_8796938726 分钟前
用Pygame开发你的第一个小游戏
jvm·数据库·python
xushichao198935 分钟前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
2501_945423541 小时前
工具、测试与部署
jvm·数据库·python
Oueii1 小时前
数据分析师的Python工具箱
jvm·数据库·python
weixin_421922691 小时前
使用Scikit-learn进行机器学习模型评估
jvm·数据库·python
Liu628881 小时前
如何为开源Python项目做贡献?
jvm·数据库·python
烟花巷子2 小时前
使用Kivy开发跨平台的移动应用
jvm·数据库·python
2401_873204652 小时前
Python面向对象编程(OOP)终极指南
jvm·数据库·python