竹笋

首页 » 问答 » 灌水 » JVM垃圾回收器amp内存泄露原因解
TUhjnbcbe - 2025/7/30 12:52:00

应用运行中,突然报内存泄漏,于是研究了下JVM垃圾回收器内存泄露原因,今天就来聊聊这些

垃圾收集算法(一)

①介绍

②GC的时机

在分代模型的基础上(新生代老年代),GC从时机上分为两种ScavengeGC和FullGC。

ScavengeGC。2.1触发时机:新对象生成时,Eden空间满了。2.2理论上Eden区大多数对象会在ScavengeGC回收,复制算法的执行效率会很高,ScavengeGC时间比较短。

FullGC(服务暂停)。3.1对和整个JVM进行整理,包括Young、Old和Perm。3.2主要的触发时机:old满了、Perm满了、system.gc()。3.3效率很低,尽量减少FullGC。

③垃圾回收器

分代模型:GC的宏观场景。

垃圾回收器:GC的具体实现。

HotspotJVM提供多种垃圾回收器,我们需要根据具体应用的需要采用不同的回收器。

没有万能的垃圾回收器,每种垃圾回收器都有自己的使用场景。

④垃圾收集器的并行和并发

并行:指多个收集器的线程同步工作,但是同步线程处于等待状态。

并发:指收集器在工作的同时,可以允许用户线程工作。

⑤Serial收集器

单线程收集器,收集时会暂停所有工作线程,使用复制收集算法,虚拟机运行在Client模式时的默认新生代收集器。

最早的收集器,单线程进行GC。

New和OldGeneration都可以使用。

新生代,采用复制算法,在老年代,采用Mark-

1
查看完整版本: JVM垃圾回收器amp内存泄露原因解