由java.lang.OutOfMemoryError:java heap space引发的关于JVM优化的思考

本文介绍了如何解决Java开发过程中出现的内存溢出错误(java.lang.OutOfMemoryError:java heap space)。通过调整Eclipse集成开发环境中Java虚拟机(JVM)的最大堆内存限制(-Xmx),可以有效避免该问题。此外,还解释了-Xms和-Xmx参数的具体含义。

   今天测试的时候,遇到这样一个问题:java.lang.OutOfMemoryError:java heap space。从字面意思就可以看出,这是由于内存溢出的问题。

  由于我们使用的是Eclipse集成开发环境进行的开发,eclipse 有启动参数里设置jvm大小,因为eclipse运行时自己也需要jvm,所以eclipse.ini里设置的jvm大小不是具体某个程序运行时所用jvm的大小,这和具体程序运行的jvm大小无关。那么怎么才能设置某个程序的jvm大小呢(当然控制台运行的话不会存在这个问题,如:java -Xms256m -Xmx1024m classname,这样就可以把当前程序的jvm大小给设定)?因为eclipse里默认的一个程序的jvm配置为:-Xms8m -Xmx128m,所以我们的处理耗内存比较大时需要手动调整一下,以便不会内存溢出。具体的设置方法为:选中被运行的类,点击菜单‘run->run...’,选择(x)=Argument标签页下的vm arguments框里输入 -Xmx512m, 保存运行就ok了。

  以上只是知道了怎么修改,那么到底各参数是什么意思呢?为什么会出现这些问题呢?

  -Xms:初始Heap大小,使用的最小内存
  -Xmx:java heap最大值,使用的最大内存

转载于:https://www.cnblogs.com/chenjingjing/archive/2010/03/25/1696116.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值