Sun的JVM将整个堆分为三代:YoungGen(新生代),OldGen(年老代),和PermGen(持久区):

Minor GC:通常是指对新生代的回收。

Major GC:通常是指对年老代的回收。

Full GC:Major GC除并发gc外均需对整个堆进行扫描和回收。

复制拷贝算法:要拷贝大量数据,不会产生碎片。

标记算法:从引用根节点开始标记所有被引用的对象,把未被引用的对象清除。要遍历所有对象,会产生碎片。

young 又分为eden,survivor1(from space ),survivor2(to sapce ).youngGen区里面的对象的生命周期比较短,gc对这些对象进行回收的时候采用复制拷贝算法。

eden 每当一个对象创建的时候分配的这个区域。当eden无法分配时,触发一次Minor gc。gc每次回收的时候都将eden区存活的对象和survivor1中的对象拷贝到survivor2中,eden和survivor1清空;当gc执行下次回收的时候将eden和survivor2中的对象拷贝到surivor1中,清空eden和survivor2。依次这样执行;经过数次回收将依然存活的对象复制到OldGen区。

OldGen 当对象从年轻代晋升到老年代之前,会检测老年区的剩余空间是否大于要晋升对象的大小,如果小于则直接进行一次Full GC,以便让老年去腾出更多的空间,然后再进行Minor GC,把年轻代的对象复制到老年代;如果大于,则根据条件(HandlePromotionFailure设置)进行Minor GC 和 Full GC。

老年区采用标记算法,因为老年区对象的生命周期都是比较长的,采用拷贝算法要拷贝大量的数据。采用标记算法每次gc回收都要遍历所有的对象。

PermGen 主要存放加载进来的类信息,包括方法,属性,常量池等,满了之后可能会引起out of memory 错误。

java ps old gen perm gen_JVM YoungGen(新生代),OldGen(年老代),和PermGen(持久区)相关推荐

  1. java ps old gen perm gen_java – JVM YoungGen 0%,Perm Gen 99%,OldGen Full

    我有一个JEE应用程序,最近开始看到CPU使用率的峰值(例如,40核心服务器上的27个核心的100%)以及应用程序不可用的时间越来越长.它与下一篇文章中描述的问题非常相似,包括弹跳应用程序服务器使问题 ...

  2. java ps old gen perm gen_Java 内存模型之堆内存管理

    Java 内存模型之堆内存(Heap) 一.背景知识:内存类型介绍 1.什么是 Perm Gen? Perm Gen : Permanent Generation Perm Gen 区是一个特殊的JV ...

  3. Java新生代 与老生代

    堆大小 = 新生代 + 老年代.默认下,新生代 ( Young ) = 1/3 的堆空间大小,老年代 ( Old ) = 2/3 的堆空间大小: 新生代 ( Young ) 被细分为 Eden 和 两 ...

  4. JVM内存区域划分Eden Space\Survivor Space\Tenured Gen\Perm Gen

    JVM区域分heap区和非heap区. 1)heap区:Eden Space(伊甸园),Survivor Space(幸存者区),Tenured Gen(老年代-养老区). 2)非heap区:Code ...

  5. java年轻代和年老代默认比值_JAVA中的GC以及年轻代,年老代,持久代的认识

    java中我们常常谈论到垃圾回收机制,那么,垃圾回收机制又是什么呢?说到JVM调优,似乎很高大上,那么JVM调的都是那些数据呢?伊甸园区,幸存区,年轻代,年老代,持久代,每个词都熟悉又陌生,似乎很深奥 ...

  6. java内存模型 年轻代/年老代 持久区

    jvm中的年轻代 老年代 持久代 gc 虚拟机中的共划分为三个代:年轻代(Young Generation).老年代(Old Generation)和持久代(Permanent Generation) ...

  7. java虚拟机-JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)

    一.背景 1.1 永久代(PermGen)在哪里? 根据,hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了): 上图引自网络,但有个问题:方法区和heap堆都是线程共享的内存区域. 关于方 ...

  8. Java 年轻代、年老代、GC

    一篇关于gc的文章 http://www.cnblogs.com/hnrainll/archive/2013/11/06/3410042.html 自己的笔记: JVM是用c语言写的.一般说的JVM是 ...

  9. java年轻代_Java分代垃圾回收机制:年轻代/年老代/持久代(转)

    虚拟机中的共划分为三个代:年轻代(Young Generation).年老点(Old Generation)和持久代(Permanent Generation).其中持久代主要存放的是Java类的类信 ...

最新文章

  1. 一张图看懂React生命周期
  2. 基于STC8H1K28的人机键盘界面
  3. hurst代码 python_python数据类型—字符串
  4. Django项目:CRM(客户关系管理系统)--50--41PerfectCRM实现全局账号密码修改
  5. 荣耀x10max鸿蒙,黄石收购荣耀X10Max指纹键电池背光喇叭
  6. 基于nodejs实现本地网页服务器-实现手机测试电脑开发的移动端网页
  7. Windows镜像文件下载速度太慢?告诉你个小妙招
  8. c语言免杀程序源码,[原创]Window下基于C/C++源码免杀理论及思路(新手篇)
  9. 2020年最新PHP面试题汇总(附答案)
  10. 2010年最怪异的25个面试问题,你能回答吗?
  11. HTTP提交方式之PUT详细介绍及POST和PUT的区别
  12. 思科 Spanning Tree Protocol(STP)生成树
  13. Unity中进行网络通信:三:unity客户端和Unity服务端互相发消息
  14. 微信小程序-一个跑步app
  15. 【C++】next_permutation / prev_permutation函数
  16. 未来5年光通信系统十大技术趋势发布
  17. 利用java开发简易版扫雷游戏
  18. 93---Python 极坐标系下绘制椭圆
  19. L028-老男孩实效教育-nfs网络文件系统企业级优化实战-12节
  20. 【Python中整数进制的转换】

热门文章

  1. 人生就像一盒巧克力,你不知道会选中哪一颗
  2. C#可视化编程技术第三章:DBHelper类(内含思路、代码、注释)
  3. linux配置dns三种方式
  4. 新浪微博分享 WBWebpageObject 无法显示图片问题
  5. 面试连环问之Redis分布式锁
  6. 洛谷 P8313 [COCI2021-2022#4] Izbori
  7. 贵阳学院c语言试卷,关于印发《贵阳学院硕士研究生入学考试(初试) 自命题工作管理办法(试行)》的通知...
  8. CSS 图片过渡和转换动画
  9. Intertek的环保解决方案-绿叶认证
  10. myeclise CI 2018 9破解方法