java常用的垃圾回收器介绍

        本文介绍是基于jdk1.8版本左右包括之前的版本,且虚拟机是hotspot。

        1、Serial+Serial Old ,Serial是jdk诞生就有的,这是单线程回收,并且垃圾回收的时候应用线程会停止。

        2、Parnew+CMS  这是并发回收。垃圾回收的时候应用线程不停止。

        3、Parallel Scavenge+Parallel Old 这是多线程回收,并且垃圾回收的时候应用线程会停止。

        如果你不设置垃圾回收器,默认是 Parallel scavenge,parallel Old 组合;跟Serial的区别就是这里是多线程的;相同的是服务器其他线程会停顿;

        设置启动命令 java -XX:+PrintCommandLineFlags xxxApp.jar 会打印出默认设置的启动参数,如下图:

        ParNew+CMS: 能实现响应时间优先;

        Parallel Scavenge +parallel Old:能实现吞吐量优先;

        如果使用的jdk已经是jdk1.8了,那么直接使用G1垃圾回收器即可,响应时间跟吞吐量都能达到平衡。

        jvm调优前的基础概念:

        内存泄漏memory leak:(就是有个废弃的东西占用在那里,也没人回收它)。

        内存溢出out of memory:(不断的new对象,空间不够了)。

        吞吐量:用户代码时间 /(用户代码执行时间 + 垃圾回收时间)。

        响应时间:STW越短,响应时间越好。

        所谓调优,首先确定,追求啥?吞吐量优先,还是响应时间优先?还是在满足一定的响应时间的情况下,要求达到多大的吞吐量。

吞吐量优先:科学计算就是吞吐量优先。数据挖掘也是吞吐量优先,吞吐量优先的一般:(Parallel Scavenge +parallel Old组合的垃圾回收器)。

响应时间优先:网站、 GUI、 API接口等 (jdk1.8就用 G1垃圾回收器)。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值