java newsize_JVM中的-Xms -Xmx -XX:newSize -XX:MaxnewSize -Xmn -XX:PermSize -XX:MaxPermSize区别介绍...

一、配置参数使用条件

在不断重构代码的情况下,仍然不能解决内存溢出的问题(OutOfMemoryError等),这种情况下就需要使用JVM的配置参数对JVM运行时各个区域的内存情况进行相应的分配。

二、JVM存储数据的内容的内存分为

①堆区(Java堆:所有的线程共享该区域):通过new的方式创建的对象(一个类的实例)、数组所占的空间。

注意:1)堆区还细分为新生代(Eden空间、From Survivor空间、To Survivor空间)、老年代(Tenured Generation空间)。

2)Java垃圾回收机制只作用于堆区,对非堆区没有作用。

②非堆区:代码、常量、外部访问(比如流在传输数据时所占用的资源)等。

三、常见的参数种类(配置内存)

(1)配置堆区的参数:-Xms、-Xmx、-XX:newSize、-XX:MaxnewSize、-Xmn

(2)配置非堆区的参数:-XX:PermSize、-XX:MaxPermSize

四、堆区参数配置

(1)-Xms:Java虚拟机堆区内存初始内存分配的大小,按照实际情况进行分配(一般为操作系统可用内存的1/64大小)。

(2)-Xmx:Java虚拟机堆区内存可被分配的最大上限(一般为操作系统可用内存的1/4大小)。

注意:①一般-Xms、-Xmx两个参数会配置相同的值(优点:能够在Java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源)。

(3)-XX:newSize:新生代初始化内存的大小(注意:该值需要小于-Xms的值)。

(4)-XX:MaxnewSize:新生代可被分配的内存的最大上限(注意:该值需要小于-Xmx的值)。

(5)-Xmn:对-XX:newSize、-XX:MaxnewSize两个参数同时进行配置(注意:JDK1.4之后才有该参数)。

五、非堆区参数配置

(1)-XX:PermSize:非堆区初始化内存分配大小。

(2)-XX:MaxPermSize:非堆区分配的内存的最大上限。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值