首页 技术 正文
技术 2022年11月6日
0 收藏 721 点赞 629 浏览 1120 个字

一、JVM内存模型

JVM主要管理两种类型内存:堆(Heap)和非堆(Permanent区域)。

1、Heap是运行时数据区域,所有类实例和数组的内存均从此处分配。Heap区分两大块,一块是 Young Generation,另一块是Old Generation:
  1)在Young Generation中,有一个叫Eden Space的空间,主要是用来存放新生的对象,还有两个Survivor Spaces(from,to),它们的大小总是一样,它们用来存放每次垃圾回收后存活下来的对象。
  2)在Old Generation中,主要存放应用程序中生命周期长的内存对象。

2、Permanent区:
  Permanent Generation,主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等。永久带基本不参与垃圾回收。Permanent generation 不是Heap的一部。

.JVM内存模型及内存分配过程

二、内存大小

1、Heap内存分配
  JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;
  JVM最大分配的内存由-Xmx指 定,默认是物理内存的1/4。

  默认空余堆内存小于40%时,JVM 就会增大堆直到-Xmx 的最大限制,可以由 -XX:MinHeapFreeRatio 指定。 
  默认空余堆内存大于70%时,JVM 会减少堆直到-Xms的最小限制,可以由 -XX:MaxHeapFreeRatio 指定,

2、Permanent区域内存分配
  JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;
  由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

三、JVM内存分配过程

  1、JVM 会试图为相关Java对象在Eden中初始化一块内存区域。
  2、当Eden空间足够时,内存申请结束;否则到下一步。
  3、JVM 试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收)。释放后若Eden空间仍然不足以放入新对象,则试图将部分Eden中活跃对象放入Survivor区。
  4、Survivor区被用来作为Eden及Old的中间交换区域,当Old区空间足够时,Survivor区的对象会被移到Old区,否则会被保留在Survivor区。
  5、当Old区空间不够时,JVM 会在Old区进行完全的垃圾收集(0级)。
  6、完全垃圾收集后,若Survivor及Old区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现”out of memory”错误。

JVM内存模型及内存分配过程

参考:

Java 内存模型及GC原理

java内存模型及GC原理 和 图解JVM在内存中申请对象及垃圾回收流程

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,294