Java中完整垃圾回收(Full GC)触发实例如何分析?

2026-05-26 08:110阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1103个文字,预计阅读时间需要5分钟。

Java中完整垃圾回收(Full GC)触发实例如何分析?

前言+近期被询问及这个问题,在此记录整理一下。System.gc()方法的调用+此方法的使用是建议JVM执行Full GC,然而这只是建议而非一定,但很多情况下它会导致触发Full GC,从而增加Full GC的频率。

前言

近期被问及这个问题,在此记录整理一下。

System.gc()方法的调用

此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数。强烈影响系建议能不使用此方法就别使用,让虚拟机自己去管理它的内存,可通过通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc。

老年代空间不足

老年代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:

java.lang.OutOfMemoryError: Java heap space

Java中完整垃圾回收(Full GC)触发实例如何分析?

为避免以上两种状况引起的Full GC,调优时应尽量做到让对象在Minor GC阶段被回收、让对象在新生代多存活一段时间及不要创建过大的对象及数组。

阅读全文

本文共计1103个文字,预计阅读时间需要5分钟。

Java中完整垃圾回收(Full GC)触发实例如何分析?

前言+近期被询问及这个问题,在此记录整理一下。System.gc()方法的调用+此方法的使用是建议JVM执行Full GC,然而这只是建议而非一定,但很多情况下它会导致触发Full GC,从而增加Full GC的频率。

前言

近期被问及这个问题,在此记录整理一下。

System.gc()方法的调用

此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数。强烈影响系建议能不使用此方法就别使用,让虚拟机自己去管理它的内存,可通过通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc。

老年代空间不足

老年代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:

java.lang.OutOfMemoryError: Java heap space

Java中完整垃圾回收(Full GC)触发实例如何分析?

为避免以上两种状况引起的Full GC,调优时应尽量做到让对象在Minor GC阶段被回收、让对象在新生代多存活一段时间及不要创建过大的对象及数组。

阅读全文