JVM | 垃圾回收策略(一)


theme: channing-cyan

这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战

不同于C++语言,Java语言具有自动的垃圾回收机制,我们一般不需要关注垃圾的回收。但JVM提供了多种垃圾回收算法、多种垃圾回收策略,不同的算法和策略适用于不同的业务场景。我们应该根据不同的场景选定合适的算法和策略,这样才能充分利用系统的性能。这篇文章带先带 大家走进垃圾回收策略、垃圾回收算法、具体的垃圾回收器。

一、垃圾回收策略遵循原则

CPU使用率高的情况下,我们肯定希望让CPU执行更多的业务,而不是去消耗去执行垃圾回收。需要注意的时,如果我们高频的GC,甚至会有STW发生,造成程序运行的卡顿。所以在这种场景下,我们应该降低GC的频率。

在对内存苛刻的要求的情况下,我们肯定是要尽可能的多回收一些对象占据的空间,腾出更多的内存。所以在这种场景下,我们应该提高对象的回收效率。

二、垃圾回收发生所在地

image.png

对于了解JVM内存结构的同学很清楚的知道,虚拟机栈、本地方法栈、程序计数器是线程私有的,它会随着线程的创建而创建,随着线程的销毁而销毁,并且栈里面的栈帧还会随着执行方法的进度进度入栈和出栈的操作。基于此,所以我们不需要对这三块内存区域考虑垃圾回收。

所以对于垃圾回收,我们需要考虑的是线程之间贡献的区域,包括堆、方法区。其中是我们考虑的重中之中,我们要适实地回收创建的对象。方法区我们主要回收常量和使用到的类。


没看够,请跳转到下一篇文章JVM | 垃圾回收策略(二)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值