`
ikon
  • 浏览: 107112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

减少minor gc晋升到old的对象的方法

 
阅读更多

1、调大新生代;

2、调大survivor,让新生代对象在minor之后再多活点时间;

3、调大TenuringThreshold(存货周期);

 

<!--StartFragment -->
 如何调整survivor:
如果新生代的gc方式为ps Gc,survivor space会被动态调整,有些时候会被调整得很小,所以minor Gc导致经常有对象直接分配到old;于是为了不让其动态调整,使用-XX:-UseAdaptiveSizePolicy(减号是去掉,加号增加);
分享到:
评论

相关推荐

    JVM垃圾回收机制与GC性能调优

    年轻代比例过大可能会导致不必要的Minor GC,而过小则可能导致对象过早晋升到旧域,增加Full GC的压力。 总结来说,理解JVM堆的结构和GC的工作机制对于优化Java应用性能至关重要。调整合适的堆大小和内存分配策略...

    深入理解JVM&G1; GC

    当Eden区满时,会触发Minor GC,将存活对象晋升到Survivor区,经过多次Minor GC后仍然存活的对象会被转移到老年代。老年代则存放长期存活的对象,当其空间不足时,会触发Major GC或Full GC。元空间是Java 8引入的新...

    jvm gc

    当新生代空间不足时,会触发Minor GC,将部分存活的对象晋升到老年代。老年代的空间更大,如果老年代也满了,就会触发Major GC或Full GC,这会清理整个堆内存,包括新生代和老年代。 3. **垃圾收集器(Garbage ...

    JVM常见面试题解析.pdf

    每次GC后,Eden区会被清空,而Survivor区中的对象会根据年龄(通过Minor GC次数决定)逐渐晋升到老年代。这样的设计减少了直接进入老年代的对象数量,从而降低Full GC的发生频率。 **对象晋升到老年代的条件** - ...

    gc回收机制

    5. **内存晋升**:新生代的对象如果经过几次Minor GC后仍然存活,会被晋升到老年代。这是因为老年代的对象通常生命周期更长,需要更大的内存空间。 GC的类型主要有 Minor GC(针对新生代的垃圾收集)、Major GC...

    jvm-full-gc.zip

    2. 调整新生代与老年代的比例:通过-Xmn、-XX:NewRatio等参数调整,减少新生代晋升到老年代的对象数量。 3. 使用更高效的垃圾收集器:例如,G1、ZGC、Shenandoah等新一代收集器能降低Full GC的开销。 4. 避免大量短...

    第6节: GC垃圾回收-02

    当新生代(Eden + 一个Survivor区)在Minor GC后仍无法容纳存活对象时,这些对象会被晋升到老年代。如果老年代空间不足,JVM会触发Full GC。 ### **垃圾收集器** 1. **Serial收集器**:单线程,适用于小型应用或...

    09.内存分配与回收策略1

    新生代gc(minorgc)指发生在新生代的垃圾回收动作,因此Java对象大多数都是具备朝生夕死的特征,所以Minor GC很频繁,一般回收速度也比较快。老年代GC(Major GC/Full GC)指老年代发生的GC,出现了Major GC经常...

    JVM常见面试题解析1

    - Minor GC:针对新生代进行的垃圾收集,清理Eden和一个Survivor区,存活对象复制到另一个Survivor区或直接晋升到老年代。 - Major GC(或Full GC):主要清理老年代,当老年代空间不足时触发,通常比Minor GC耗时长...

    思维导图-详细了解JVM和GC过程

    当Eden区满时,会触发Minor GC,将存活的对象复制到Survivor区,无法容纳的直接晋升到老年代。 - **老年代GC**:当老年代空间不足时,会触发Major GC,清理整个老年代。 - **全堆GC**:包括新生代和老年代的全部...

    JVM体系结构与GC调优

    大多数对象首先在Eden区创建,经历Minor GC后存活的对象移至Survivor区。 - **老年代(Old Generation/Tenured Generation)**:存放长期存在的对象,当年轻代无法容纳新对象时,会晋升至老年代。 - **全代收集...

    jvm_gc.rar_jvm_垃圾回收

    3. **老年代(Old Generation)**:经历过多次GC仍然存活的对象会被晋升到老年代。这个区域的大小一般比年轻代大,GC频率较低。 4. **持久代(Permanent Generation)/元空间(Metaspace)**:在较新的JVM版本中,...

    JVM Memory Model and GC.pdf

    在新生代中存活下来的对象会被移动到老年代中,这个过程称为对象的晋升。 垃圾收集的主要类型有四种,虽然在内容中没有具体提到这四种类型,但在JVM中常见的垃圾收集器包括Serial GC、Parallel GC、CMS(Concurrent...

    JDK17-hotspot-virtual-machine-garbage-collection-tuning-guid

    * 调整 survivor 区域的大小:根据应用程序的对象存活时间调整 survivor 区域的大小,以避免对象晋升到 old generation。 * 使用并发垃圾收集:使用并发垃圾收集可以减少垃圾收集的 pause 时间,以提高系统性能。 ...

    JVM性能调优-JVM内存整理及GC回收.pdf_java_jvm_

    4. **对象生命周期管理**:合理设计对象生命周期,避免大量短生命周期对象晋升到老年代,导致不必要的Full GC。 5. **类加载优化**:控制类加载机制,避免类的频繁加载和卸载,减少方法区的压力。 6. **并行与并发...

    深入Java对象及元素的存储区域

    每次Minor GC后,如果对象仍然存活,则会被移动到另一个Survivor空间或直接晋升到老年代。 - **老年代(Old Generation)**:存放长期存活的对象。当对象在新生代经过多次GC依然存活时,就会晋升到老年代。老年代的...

    java堆内存详解.docx

    每次熬过Minor GC,对象的年龄加1,当达到一定阈值(默认15,可配置`-XX:MaxTenuringThreshold`)后,对象晋升至老年代。大对象可能直接进入老年代。 Full GC则涉及到整个堆空间和持久代,通常使用标记-清除算法,...

    jvm内存状况查看

    `[PSOldGen: 973066K-&gt;450587K(1060864K)]`则表示老年代从973066K减少到450587K,说明一些对象晋升到了老年代。 除了上述基本参数,还有一些其他的工具和选项可以帮助深入分析。例如: - `-verbose:gc` - 提供更...

    面试官工作总结.pdf

    - Minor GC:当Eden区满时,或者Survivor区无法容纳新晋升的对象。 - Full GC:老年代空间不足,HandlePromotionFailure参数触发,或者GCTimeRatio参数设置导致的性能问题。 5. **垃圾收集的优化策略**: - **...

    weblogic内存调优

    当Eden区满时,会触发Minor GC,存活下来的对象会被移动到Survivor区。如果Survivor区不足以容纳这些对象,部分对象会晋升到老年代。老年代用于存储长期存活的对象,当老年代空间不足时,会触发Major GC或Full GC,...

Global site tag (gtag.js) - Google Analytics