java垃圾回收菜鸟_java程序员不懂JVM内存回收,两年后也是个菜鸟

java程序员不懂JVM内存回收,两年后也是个菜鸟

在学java程序员的时候,如果你还不懂JVM内存回收,那么你就只能是个很一般的程序员菜鸟了,那么什么是JVM内存回收呢?今天我们就来学习,都还不深入了解在上以前的课程中达内培训老师说过“JVM(三)内存回收(一)”我讲到了垃圾回收的几种算法,算是解决了之前提到的3个问题中的最后一个。

关于内存回收,还应该了解常用的内存回收器(GC Collector),即执行上述回收算法的引擎。

【垃圾回收器】

Serial / Serial old 回收器:从名字的字面意思就能明白,这两个是串行垃圾回收器。请看下图:

7e669f6f66dd39a44c5d556e6d298600.png

Serial/Serial Old收集器运行示意图

昆明达内培训老师从图中可以看出,当到达“安全点”的时候,所有的用户线程都被挂起,即“Stop the

world”发生了,然后再由单个GC线程来回收所有不需要使用的对象的内存。这里需要注意的是:

在新生代(serial)中,采用的复制算法进行垃圾回收

在老年代(serial old)中,则是采用的标记-整理算法进行垃圾回收

这两个收集器一般不建议在多处理器的服务器端使用,如果要使用,一般用在内存很小的桌面应用程序或者单核(或少核)的CPU服务器上。

【回收器】

这三个回收器均为并行回收器,其中,除了Parallel

old用于老年代回收外,另外两个都用在新生代。其并行主要体现在:Serial回收器在GC阶段只有单个线程进行GC,而这些回收器,会存在多个GC线程。

【新生代两个并行收集器区别】

ParaNew

除Serial收集器之外,只有它能和CMS搭配使用;另外,它更注重的是缩短停顿时间,达到更好的用户体验,比较适应用作与用户交互的应用程序上。使用

-XX:+UseConcMarkSweepGC选项默认会被指定为新生代的收集器,而使用-XX:+UseParaNewGC选项来强制指定它为新生代收集器;

【CMS 回收器】

CMS GC (-XX:+UseConcMarkSweepGC),其工作过程比之前的任何一个GC

Collector都要复杂,但是对低时延的应用非常有用。下面我们通过和Serial GC对比一下来说明是怎么样做到更低时延的。

Parallel Scavenge

则是更注重吞吐量的一个收集器,所谓的吞吐量就是“运行用户代码的时间/(运行用户代码时间+垃圾收集时间)”,主要适合在后台需要大量运算而不需要交互太多的任务。

另外一个最大的不同是,该收集器在设定了虚拟机的优化目标之后,如指定了-Xmx,并且指定了MaxGCPauseMillis(更关注最大停顿时间)或GCTimeRatio(更关注吞吐量),再选择参数-XX:+UseAdaptiveSizePolicy,使用自适应功能之后,虚拟机会自动根据收集到的系统性能监控信息,动态调整新生代的大小(-Xmn)、Eden与Survivor区的比例(-XX:SurvivorRatio)、晋升老年代对象年龄(-XX:PretenureSizeThreshold)等细节参数了,从而提供最合适的停顿时间或者最大的吞吐量。

老年代的并行收集器(Parallel old),是Parallel

Scavenge的老年代版本,使用多线程+“标记-整理”算法实现。二者搭配之后,主要用于比较关注高吞吐量、CPU敏感的应用系统。-XX:+UseParallelOldGC来指定。

0元课程抢先听,扫码可得机会!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值