前言 最近被问到了JVM的垃圾收集器,在此进行整理记录,供大家一起学习。 jvm垃圾收集器 jvm垃圾收集器是jvm内存回收的具体实现。本次讨论hotspot虚拟机中的垃圾收集器。 图中总共有7中垃圾收集器。两个收集器中连线则表示可以配合使用。 中间的横线代表新生代和老年代的分区。上面的是新生代的垃 ...
分类:
其他好文 时间:
2020-05-02 22:54:46
阅读次数:
51
不同的垃圾收集器代表不同的回收算法Serial收集器是针对新生代的收集器,采用的是Copying算法 Serial Old收集器是针对老年代的收集器,采用的是Mark-Compact算法,标记-压缩算法Parallel 并行收集器 Copying算法Parallel Old收集器 并行收集器 Mar ...
分类:
其他好文 时间:
2020-04-19 17:34:10
阅读次数:
77
转自: https://www.cnblogs.com/ityouknow/p/5610232.html 看一张图,这张图能很清晰的说明JVM内存结构布局。 Java的内存结构: JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部 ...
分类:
编程语言 时间:
2020-04-18 09:52:29
阅读次数:
71
参考:GC垃圾收集器分类 一、垃圾回收算法 1.标记-清除算法 2.复制算法 3.标记-整理算法 二、按垃圾收集器所处区域分类 1.新生代收集器:Serial(复制算法)、ParNew、Parallel Scavenge; 2.老年代收集器:Serial Old(标记-整理)、Parallel Ol ...
分类:
其他好文 时间:
2020-04-15 21:50:53
阅读次数:
107
Java堆内存分为年轻代和老年代,其中,年轻代分为Eden区和survival区,survival又分为fromSurvival和toSurvival。 首先第一个问题:为什么要有Survival区?因为如果没有Survival区,Eden每进行一次MinorGC,存活对象送到老年代,当老年代被填满 ...
分类:
编程语言 时间:
2020-04-08 20:50:01
阅读次数:
240
导致Full GC一般由于以下几种情况: 1)老年代空间不足 调优时尽量让对象在新生代(细分为Eden和幸存区)GC时被回收、让对象在新生代多存活一段时间(增大新生代内存或者调高晋升老年代的门槛)和不要创建过大的对象及数组避免直接在老年代创建对象 2)新生代设置过小 一是新生代GC次数非常频繁,增大 ...
分类:
其他好文 时间:
2020-04-06 22:14:33
阅读次数:
105
Young GC的触发时机:Young GC其实一般就是在新生代的Eden区域满了之后就会触发,采用复制算法来回收新生代的垃圾。 Full GC的触发时机如下: (1)发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象总和的平均大小 ...
分类:
其他好文 时间:
2020-04-04 11:21:05
阅读次数:
746
Young GC的触发时机:Young GC其实一般就是在新生代的Eden区域满了之后就会触发,采用复制算法来回收新生代的垃圾。 Full GC的触发时机如下: (1)发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象总和的平均大小 ...
分类:
其他好文 时间:
2020-04-03 18:13:00
阅读次数:
441
一.Java堆从GC的角度去看,可以分为三个区域,分为是新生代,老年代,永久代(是方法区的实现,但是物理逻辑是和堆在一起的) 其中新生代占1/3的堆空间,老年代占2/3的堆空间,永久代占得很少,就不进行划分了,他也占了,但是很少很少,新生代占的1/3又分为Eden区(占比8/10),Servivor ...
分类:
其他好文 时间:
2020-04-02 15:54:22
阅读次数:
86
修改client 和server的配置信息路径: jvm结构: 总结结构图: 二:jvm堆结构图及分代 老年代: 永久代: 垃圾回收常见算法: ...
分类:
其他好文 时间:
2020-03-31 17:28:13
阅读次数:
59