博客
关于我
java虚拟机的垃圾收集器之新生代收集器
阅读量:138 次
发布时间:2019-02-27

本文共 921 字,大约阅读时间需要 3 分钟。

hotspot虚拟机的收集器之新生代收集器

hotspot垃圾收集器主要有七种:如图所示:

这里写图片描述
图中上面部分是新生代的垃圾收集器,下面部分表示老年代的垃圾收集器,两个垃圾收集器的之间的连线表示两个收集器搭配使用。

serial收集器

serial收集器是最基本发展最悠久的收集器。serial收集器是一个单线程的收集器,但他的“单线程”的意义并不仅仅只会使用一个cpu或者一条线程去完成垃圾收集工作,更重要的是在他进行垃圾收集时,必须暂停其他所有的工作线程,直到收集结束。

这里写图片描述
serial/serial Old收集器运行示意图

serial的优点:简单有效(与其他收集器的单线程比),对于限定单个cpu的环境来说,serial收集器由于没有线程交互的开销,专心做垃圾收集自然可以获得最高的单线程的收集效率。serial收集期对于运行在client模式下的虚拟机来说是一个很好的选择。

ParNew收集器

ParNew收集器其实就是serial收集器的多线程版,除了使用对线程进行垃圾回收收集之外,其余包括serial收集器可用的所有控制参数、收集算法、stop the world、对象分配规则、回收策略等都和serial收集器完全一样。

这里写图片描述
ParNew/serial Old 收集器运行示意图

ParNew收集器的优缺点:ParNew收集器在单cpu的环境中绝对不会比serial好,甚至由于存在线程交互的开销,该收集器在通过 实现的两个cpu的环境中都不能百分之百保证超过serial收集器。当然随着cpu的数量增加,他对于GC时系统资源的利用还是很有好处的。

Parallel Scavenge收集器

Parallel Scavenge收集器也是使用复制算法的收集器

Parallel Scavenge的特点:Parallel Scavenge关注与其他收集器不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量,所谓的吞吐量就是CPU用于运行用户代码的时间与CPU总耗时间的比值,即吞吐量 = 运行用户代码时间/(运行用户代码时间+垃圾收集时间)。

你可能感兴趣的文章
Nginx Lua install
查看>>
nginx net::ERR_ABORTED 403 (Forbidden)
查看>>
Nginx SSL 性能调优
查看>>
Nginx SSL私有证书自签,且反代80端口
查看>>
Nginx upstream性能优化
查看>>
Nginx 中解决跨域问题
查看>>
nginx 代理解决跨域
查看>>
Nginx 做负载均衡的几种轮询策略分析
查看>>
Nginx 动静分离与负载均衡的实现
查看>>
Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
查看>>
nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
查看>>
Nginx 反向代理解决跨域问题
查看>>
Nginx 反向代理配置去除前缀
查看>>
nginx 后端获取真实ip
查看>>
Nginx 多端口配置和访问异常问题的排查与优化
查看>>
Nginx 如何代理转发传递真实 ip 地址?
查看>>
Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
Nginx 学习(一):Nginx 下载和启动
查看>>
nginx 常用指令配置总结
查看>>