概述
一、常见垃圾收集算法
1、标记-清除算法:首先标记出需要回收的对象,在标记完成后统一回收所有被标记的对象
2、复制算法:将可用内存按容量分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉
3、标记-整理算法:标记存活的对象都向一端移动,然后直接清理掉端边界以外的内存
4、分代收集算法:根据各个年代的特点采用最合适的收集算法
二、垃圾收集器
垃圾收集器 | 使用位置 | 使用算法 | 可配合收集器 | 描述 |
---|---|---|---|---|
Serial收集器 | 新生代 | 复制算法 | CMS | 单线程、Client模式下默认新生代收集器 |
ParNew收集器 | 新生代 | 复制算法 | CMS | Serial的多线程版本、Server模式下默认收集器、默认线程数=CPU数量 |
Parallel Scavenge收集器 | 新生代 | 复制算法 | 多线程、目标关注吞吐量 | |
Serial Old收集器 | 老年代 | 标记-整理 | Serial的老年代版本、单线程、Client模式下使用 | |
Parallel Old收集器 | 老年代 | 标记-整理 | Parallel Scavenge的老年代版本、多线程、关注吞吐量 | |
CMS收集器 | 老年代 | 标记-清除 | Serial、ParNew | 并发低停顿、关注最短停顿时间 |
G1收集器 | 新生代+老年代 | 复制+标记整理 | 面向服务端应用、整体基于标记整理,局部(两个Region见)基于复制 |
1)吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)
2)停顿时间短则响应速度好提升用户体验;高吞吐量则CPU利用率高,适合后台运算
最后
以上就是大方麦片为你收集整理的JVM垃圾收集器的全部内容,希望文章能够帮你解决JVM垃圾收集器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复