美文网首页
GC调优之避免临时对象进入老年代

GC调优之避免临时对象进入老年代

作者: 穹柏 | 来源:发表于2021-06-10 16:31 被阅读0次

什么是临时对象?

  1. 顾名思义,临时对象就是不能长期存活的对象,那么,怎么判断这个临时性呢?
  2. 从代码层来看,这个临时对象通常是指一些局部变量
  3. 对象有个属性叫分代年龄。分代年龄的值代表着这个对象经历的gc次数。在survivor区域不溢出的情况下经过有限次(默认是15次,具体要看系统实例情况,比如如果系统里年轻代大部分对象的分代年龄超过5就不太可能被回收,就可以认为分代年龄小于5的对象为临时对象)minor gc就能被回收的对象

临时对象进入看年代有什么后果

  1. 顾名思义,老年代是用来存放那些分代年龄较大的对象(能够长时间存活)。临时对象进入老年代,意味着老年代浪费了部分内存空间来存储无用的数据,最终导致full gc会更频繁的发生。而对老年代进行垃圾收集的成本相对minor gc好很多,有stop the world的过程,同时gc线程也会占用cpu资源。这些最终也导致了系统性能降低

怎么避免临时对象进入老年代

  1. 调整对象进入老年代的分代年龄的阈值
  2. 避免survivor区域的溢出(溢出会导致所有年轻代的对象直接进入老年代)
  3. 上述两种思路需要根据系统实际负载来调整分代年龄阈值跟年轻代各区域的大小

相关文章

  • GC调优之避免临时对象进入老年代

    什么是临时对象? 顾名思义,临时对象就是不能长期存活的对象,那么,怎么判断这个临时性呢? 从代码层来看,这个临时对...

  • JVM-GC调优

    零、本文纲要 一、 GC调优基本思路二、 新生代内存调优三、 老年代内存调优四、 GC调优案例 官方GC调优指南[...

  • Kafka调优

    一、调优吞吐量 broker参数 增加num.replica.fetchers,不要超过CPU核数 调优gc,避免...

  • 优化老年代参数的分析思路

    老年代优化的基调 :避免对象过快进入老年代进而思考=> 什么情况对象会进入老年代?=> 什么情况对象会提前进入老...

  • JVM调优,程序员必须掌握的知识

    调优之前,得知道什么样的对象会进入老年代 1.大对象(当survivor区产生了大对象,则会进入老年代)2.长期存...

  • 第二十九章、GC调优思路

    以G1 GC 为例,谈谈GC调优思路? 谈到调优,这一定是针对特定场景、特定目的的事情,对于GC调优来说,首先...

  • Java 最近遇到的面试题

    JAVA 基础 java 对象拷贝深浅拷贝 对象何时进入老年代 Minor GC 和 Full GC 有什么不同 ...

  • JVM调优

    何时进行JVM调优 Heap内存(老年代)持续上涨达到设置的最大内存值; Full GC 次数频繁; GC 停顿时...

  • 基本的JVM优化(持续更新中......)

    JVM内存模型 性能调优 GC分代机制:new出新对象首先放在Eden区;Eden区满了就会触发minor gc,...

  • JVM性能调优

    一、性能调优目的 二、软件调优大致过程 查看内存和GC日志 调整新生代和老年代比例 性能分析 性能达标条件 Min...

网友评论

      本文标题:GC调优之避免临时对象进入老年代

      本文链接:https://www.haomeiwen.com/subject/kqfpeltx.html