这里向大家描述一下JVM垃圾回收机制的概念,JVM垃圾回收分多级,1级或以上为部分JVM垃圾回收,只会回收Young中的垃圾,内存溢出通常发生于OLD段或Perm段JVM垃圾回收后,仍然无内存空间容纳新的Java对象的情况。
创新互联专注于企业网络营销推广、网站重做改版、江宁网站定制设计、自适应品牌网站建设、成都h5网站建设、购物商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为江宁等各大城市提供网站开发制作服务。
JVM垃圾回收简介:
JVM垃圾回收分多级,0级为全部(Full)的JVM垃圾回收,会回收OLD段中的垃圾;1级或以上为部分JVM垃圾回收,只会回收Young中的垃圾,内存溢出通常发生于OLD段或Perm段JVM垃圾回收后,仍然无内存空间容纳新的Java对象的情况。
当一个URL被访问时,内存申请过程如下:
A.JVM会试图为相关Java对象在Eden中初始化一块内存区域
B.当Eden空间足够时,内存申请结束。否则到下一步
C.JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的JVM垃圾回收);释放后若Eden空间仍然不足以放入新对象,则试图将部分
Eden中活跃对象放入Survivor区/OLD区
D.Survivor区被用来作为Eden及OLD的中间交换区域,当OLD区空间足够时,Survivor区的对象会被移到Old区,否则会被保留在Survivor区
E.当OLD区空间不够时,JVM会在OLD区进行完全的垃圾收集(0级)
F.完全垃圾收集后,若Survivor及OLD区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现"outofmemory错误"。下面看一下JVM垃圾回收机制的Java堆的相关参数。
Java堆相关参数:
ms/mx:定义YOUNG+OLD段的总尺寸,ms为JVM启动时YOUNG+OLD的内存大小;mx为最大可占用的YOUNG+OLD内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。
NewSize/MaxNewSize:定义YOUNG段的尺寸,NewSize为JVM启动时YOUNG的内存大小;MaxNewSize为最大可占用的YOUNG内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。
PermSize/MaxPermSize:定义Perm段的尺寸,PermSize为JVM启动时Perm的内存大小;MaxPermSize为最大可占用的Perm内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。
SurvivorRatio:设置Survivor空间和Eden空间的比例
例:
- MEM_ARGS="-Xms512m-Xmx512m
- -XX:NewSize=256m-XX:MaxNewSize=256m
- -XX:PermSize=128m-XX:MaxPermSize=128m
- -XX:SurvivorRatio=6"
在上面的例子中:
- YOUNG+OLD:512M
- YOUNG:256M
- Perm:128M
- Eden:YOUNG*6/(6+1+1)=192M
- Survivor:YOUNG/(6+1+1)=32M
Java堆的总尺寸=YOUNG+OLD+Perm=640M
【编辑推荐】
网页题目:JVM垃圾回收机制简介
本文路径:http://www.gawzjz.com/qtweb/news25/180075.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联