JVM--怎么选择一款合适的垃圾收集器

JVM–怎么选择一款合适的垃圾收集器

echo编辑整理。欢迎添加echo微信(微信号:t2421499075)交流学习。该文章不支持转载,主要内容来自读书笔记和网络博客,以及视频学习整理。

参考资料列表:

jdk不同版本的垃圾收集器:https://blog.csdn.net/weixin_34166847/article/details/94133616

鼓泡学院资料集

《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》 --周志明

衡量垃圾收集器的三项最重要的指标是:内存占用(Footprint)、吞吐量(Throughput)和延迟(Latency),但是我们仅仅知道这些,再去了解一下诸多的垃圾收集器,并不能有效合理的选择一款适合我们的垃圾收集器。在网上看到很多的文章描述,都是请根据每一个垃圾收集器的特性和对应的场景来使用。这一句话其实一点也没错,但是对于一个接触垃圾收集器不多的人来说,可能就会造成一脸懵。本文主要整理选择垃圾收集器的方法

越先进的垃圾收集器越好吗?

答案是否定的。在我们JDK不断更新的过程过,我们发现很多的垃圾收集器都是根据JDK的版本来调整的,比如G1就是JDK11的环境发布的,ZGC应该是JDK13的环境发布的。很显然,目前市场上很多公司还在使用JDK1.7、JDK1.8,使用JDK11的都很少,所以有可能牛头不对马嘴

垃圾收集器选择场景分析

  • 应用程序需要尽快计算出结果,目标是能尽快计算出结果,那吞吐量就是最主要的点【吞吐量】。
  • 如果是SLA应用,那停顿时间直接影响服务质量,严重的甚至会导致事务超时,关注点就是延迟【延迟】。
  • 如果是客户端或者嵌入式应用,那垃圾收集器的内存占用则是不可忽视的【内存占用】。

垃圾收集器受哪些硬件条件影响

  • 系统架构是x86-32/64、SPARC还是ARM/Aarch64
  • 处理器的数量有多少
  • 分配的内存大小
  • 操作系统是Linux、Solaris、Windows

JDK版本对垃圾收集器的影响

  • 【Serial收集器】JDK1.3.1前是HotSpot新生代收集的唯一选择
  • 【ParNew】【Parallel Scavenge】JDK1.4的垃圾收集器
  • 【CMS(Concurrent Mark Sweep)】【Serial Old】JDK1.5的垃圾收集器版本
  • 【Parallel Old】JDK1.6的垃圾收集器版本
  • 【G1】JDK11的垃圾收集器版本
  • 【ZGC】JDK13的垃圾收集器版本

JDK供应商对垃圾收集器的影响

Shenandoah属于OpenJDK12的正式特性之一,Oracle并不支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xlecho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值