jvm:停止复制、标记清除、标记整理算法(垃圾回收)
来源:互联网 发布:日军轰炸重庆 知乎 编辑:程序博客网 时间:2024/05/16 10:23
1. 停止-复制算法:
将可用的内存按容量划分为大小相等的两块(from,to),每次只是用其中一块(总有一块是空的【to区域】)。当这一苦熬的内存用完了,就将还存活着的对象复制到另外一块上面,然后把已使用过的内存空间一次清理完。
HotSpot虚拟机默认Eden和Survivor大小的比例是8:1,也就是每次新生代中可用的内存空间为整个新生代容量的90%,只有10%的内存时被浪费的。
缺点:浪费内存空间,如果对象存活率较高时要执行较多的复制操作,效率降低。
图解:有一块内存区域是空的,一般是to区域。保留区域每次回收后都因为复制的时候让他们变为连续的地址空间,所有不产生内存碎片。
2. 标记-清除算法:
先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。
缺点:回收了被标记的对象后,由于未经过整理,所以导致很多内存碎片
图解:绿色是被标记为可回收的,当回收后,未使用的内存空间非常零碎,产生内存碎片。
3. 标记-整理算法:
标记整理算法的“标记”过程和标记-清除算法一致,只是后面并不是直接对可回收对象进行整理,而是让所有存活的对象都向一段移动,然后直接清理掉端边界意外的内存。
图解:由于标记后继续整理,可以很明显的看出未使用的地址空间都是连续的,不会产生内存碎片。
1 0
- jvm:停止复制、标记清除、标记整理算法(垃圾回收)
- JVM垃圾收集算法(标记-清除、复制、标记-整理)
- jvm垃圾收集(标记-清除,复制,标记-整理,分代)算法
- jvm垃圾收集(标记-清除,复制,标记-整理,分代)算法
- jvm垃圾收集(标记-清除,复制,标记-整理,分代)算法
- jvm垃圾回收-标记复制
- jvm垃圾回收算法(并发垃圾收集器(CMS)为什么没有采用标记整理-算法来实现,而是采用的标记-清除算法?)
- Java虚拟机垃圾回收(二) 垃圾回收算法:标记-清除算法 复制算法 标记-整理算法 分代收集算法 火车算法
- Java虚拟机垃圾回收(二) 垃圾回收算法 标记-清除算法 复制算法 标记-整理算法 分代收集算法 火车算法
- 深入理解JVM03--垃圾收集算法(“标记-清除”,“复制”,“标记-整理”,“分代收集”)
- 垃圾回收算法之标记-清除算法
- 垃圾回收算法之 标记-清除算法
- JAVA虚拟机:垃圾收集算法(标记清除算法、复制算法、标记整理算法、分代收集算法)
- java垃圾回收算法之-标记清除
- java垃圾回收算法之-标记清除
- 垃圾回收算法之标记-整理算法
- 垃圾回收算法之 标记-整理算法
- JVM垃圾收集器----垃圾标记、回收算法
- 在ubuntu上搭建svn服务器
- SQL Server2008附加数据库之后显示为只读时解决方法
- 设计模式之1--五大原则
- 从2月14号开始,上传AppStore会碰到:Failed to locate or generate matching signing assets
- 使用变量分组的sql : 排序后再分组,取分组的第一个
- jvm:停止复制、标记清除、标记整理算法(垃圾回收)
- [源代码]基于D-S证据理论的雷达探测信息融合
- appium定位元素java篇
- Android 6.0 HttpClient弃用问题
- NFS的安装、配置与使用
- IOS 笔记之错误收集
- 全局变量 局部变量 静态变量的区别
- 【C++】《C++标准程序库》小结第十章-特殊容器
- CDOJ 1039 Fabricate equation