Java千百问_07JVM架构(010)_什么是老生代的标记算法
2016-05-28 10:50
477 查看
点击进入_更多_Java千百问
了解java垃圾回收看这里:java垃圾回收机制是什么
所谓标记算法(Mark),分为多种,最简单直观的即标记-清除算法(Mark-Sweep)。即将认定为可回收的内存做一个标记,然后统一将被标记的清理,算法图解如下:
算法过程:
1. 先判定对象是否可回收,对其标记。
2. 统一回收(简单地删除对垃圾对象的内存引用)。
标记-清除算法十分简单直观,且容易实现和理解。但是有一个很严重的问题,内存空间碎片化,这显然是不能接收的,所以Java对老生代的垃圾处理采用的是标记-紧凑算法。
算法过程:
标记:标记可回收对象(垃圾对象)和存活对象。
紧凑(也称“整理”):将所有存活对象向内存开始部位移动,称为内存紧凑(相当于碎片整理)。
清理剩余内存空间。
可以看出,内存的碎片整理虽然会损失一定的效率,但是大大减少了内存的碎片化程度,更有利于内存的使用和分配。
1、什么是老生代的标记算法
了解堆内存看这里:java堆内存是什么样的了解java垃圾回收看这里:java垃圾回收机制是什么
所谓标记算法(Mark),分为多种,最简单直观的即标记-清除算法(Mark-Sweep)。即将认定为可回收的内存做一个标记,然后统一将被标记的清理,算法图解如下:
算法过程:
1. 先判定对象是否可回收,对其标记。
2. 统一回收(简单地删除对垃圾对象的内存引用)。
标记-清除算法十分简单直观,且容易实现和理解。但是有一个很严重的问题,内存空间碎片化,这显然是不能接收的,所以Java对老生代的垃圾处理采用的是标记-紧凑算法。
2、什么是老生代的标记-紧凑算法
所谓标记-紧凑算法(Mark-Compact),即在标记-清除算法的基础上,增加了碎片整理这一步,算法图解如下:算法过程:
标记:标记可回收对象(垃圾对象)和存活对象。
紧凑(也称“整理”):将所有存活对象向内存开始部位移动,称为内存紧凑(相当于碎片整理)。
清理剩余内存空间。
可以看出,内存的碎片整理虽然会损失一定的效率,但是大大减少了内存的碎片化程度,更有利于内存的使用和分配。
相关文章推荐
- arXiv网站
- Java千百问_07JVM架构(009)_什么是新生代的复制算法
- IT人士必去的10个网站
- 从此不求人:自主研发一套PHP前端开发框架(33)之插件化架构实现下
- Java千百问_07JVM架构(008)_java垃圾回收机制是什么
- 从此不求人:自主研发一套PHP前端开发框架(33)之插件化架构实现中
- 什么是架构
- 什么是架构
- 给外网访问本地网站
- 自助建站工具 搭建出来的网站真的适合SEO吗?
- Android群英传读书笔记第三章(Android控件架构与自定义View)
- [转]Kyoto Cabinet和LevelDB的架构比较分析
- 常用网站
- 小型电子商务网站数据管理系统
- android MVP——mvp架构的应用和优化
- git学习参考网站
- 数据采集测试资料网站
- 网站性能优化
- 游戏服务端架构学习笔记
- 大型网站架构系列:分布式消息队列