码迷,mamicode.com
首页 > 其他好文 > 详细

jvm 结构分析

时间:2020-02-06 22:58:40      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:oca   数据区   article   jdk   数据   操作   内存碎片   stat   老年   

jvm区域总体分两类,heap区和非heap区。heap区又分:

Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。

非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。

技术图片

 

 堆区:young  gen 区和old  也叫Tenured gen 区

非堆区也叫永久代在jdk8后改为元数据区,Permanent generation ,像方法区就是典型的代表:

技术图片

 

 

常见的垃圾搜集器一共7种,3个young ,3个old ,一个横跨 young 和  old 区也就是G1:

技术图片

 

 

 新生代收集器:Serial(  采用复制算法),ParNew(复制算法)、Parallel Scavenge(采用复制算法)

      老年代收集器:Serial Old(  采用"标记-整理"算法,还有压缩,Mark-Sweep-Compact)、Parallel Old( 采用"标记-整理"算法;)、CMS(    基于"标记-清除"算法(不进行压缩操作,产生内存碎片);

      整堆收集器:G1;

技术图片

 

 

================

1-3、Minor GC和Full GC的区别

(A)、Minor GC

       又称新生代GC,指发生在新生代的垃圾收集动作;

       因为Java对象大多是朝生夕灭,所以Minor GC非常频繁,一般回收速度也比较快;

(B)、Full GC

       又称Major GC或老年代GC,指发生在老年代的GC;

       出现Full GC经常会伴随至少一次的Minor GC(不是绝对,Parallel Sacvenge收集器就可以选择设置Major GC策略);

      Major GC速度一般比Minor GC慢10倍以上;

 

 

其他:discuss 

https://blog.csdn.net/clover_lily/article/details/80160726

jvm 结构分析

标签:oca   数据区   article   jdk   数据   操作   内存碎片   stat   老年   

原文地址:https://www.cnblogs.com/SunshineKimi/p/12271106.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!