JVM优化篇之堆内存模型

2019-06-14  本文已影响0人  热心肠的徐同学

上一篇中讲了JVM的基本参数含义JVM优化篇之参数
,这一篇我们来聊一聊JMM(java内存模型).
jvm的堆内存模型在1.7和1.8有较大的区别

JDK1.7堆内存模型

JDK1.7堆内存模型

JDK1.8的堆内存模型

JDK1.8堆内存模型

由上图可以看出,jdk1.8的内存模型是由2部分组成,年轻代 + 老年代。
年轻代:Eden + 2*Survivor
老年代:OldGen
在jdk1.8中变化最大的Perm区,用Metaspace(元数据空间)进行了替换。
需要特别说明的是:Metaspace所占用的内存空间不是在虚拟机内部,而是在本地内存空间中,这也是与1.7的永久代最大的区别所在。


JDK1.8堆内存模型

为什么要废弃1.7中的永久区?

官网给出了解释:http://openjdk.java.net/jeps/122

This is part of the JRockit and Hotspot convergence effort. JRockit customers do not need to configure the permanent generation (since JRockit does not have a permanent generation) and are accustomed to not configuring the permanent generation.
移除永久代是为融合HotSpot JVM与 JRockit VM而做出的努力,因为JRockit没有永久代,不需要配置永久代。

上一篇 下一篇

猜你喜欢

热点阅读