JVM内存大小设置

来源:互联网 发布:淘宝上怎么领取优惠券 编辑:程序博客网 时间:2024/06/05 14:35

JVM内存大小设置

    博客分类:
  • 开发工具 and 环境配置
 

一般情况下java程序容易出现java heap space 的错误提示,这个问题就是JVM的堆内存问题,因为其初始值非常小,所以在不够用的情况下要进行设置。

当然要确保你的程序正确,做的不是无限循环之类的无用功。在运行该程序时设置如下:

java -Xmx1g  -Xms1g application

-Xmx1g 设置最大可用内存为1g

-Xms1g 设置内存初始化最小值1g

后面application为你的JAVA程序名。

最大和最小值设置为一样的,是看了某贴:以避免每次垃圾回收完成后JVM重新分配内存

值的大小根据自己电脑配置而定,不能超过电脑的物理内存。有贴建议:-Xms 为电脑物理内存的1/64 ,-Xmx为电脑物理内存的1/4

--------------------------------------------------------------------------------------------

 

好像java 程序只有在运行时设置JVM大小,而没有一个可以永久设置的地方(也可能是我在网上没有搜到)

Tomcat 关于JVM的设置:

Linux中Tomcat的bin目录中有一个叫catalina.sh的文件,在

------------------------------------------------------------------------------------------------------------------------------

eclipse.ini文件可以调整Eclipse最大使用内存:

<Eclipse_Home>下面有一个eclipse.ini文件可以调整Eclipse最大使用内存,默认如下
-vmargs
-Xms40m
-Xmx256m


调整为:
-vmargs
-Xms40m
-Xmx256m
-XX:PermSize=64M
-XX:MaxPermSize=128M

1g内存推荐为:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
 

 

对于MyEclipse的话,直接修改MyEclipse在桌面的快捷方式的参数就可以啦。现在解释这些参数的意思。

-vmargs:说明后面是VM的参数
-Xms40m:虚拟机占用系统的最小内存
-Xmx256m:虚拟机占用系统的最大内存
-XX:PermSize:最小堆大小。一般报内存不足时,都是说这个太小,
                       堆空间剩余小于5%就会警告,建议把这个稍微设
                               大一点,不过要视自己机器内存大小来设置
-XX:MaxPermSize:最大堆大小。这个也适当大些
-Xmx512M的5%为25.6M,理论上要求-Xmx的数值与-XX:MaxPermSize必须大于25.6M

把里面的参数改为
-vmargs 
-Xms128M 
-Xmx512M 
-XX:PermSize=128M 
-XX:MaxPermSize=256M

所以对于我而言,我只要把我的MyEclipse5.0改-XX:PermSize=128M-XX:MaxPermSize=256M,问题解决!
 
-----------------------------------------------------------------------------
<Eclipse_Home>下面有一个eclipse.ini文件可以调整Eclipse最大使用内存,默认如下
-vmargs
-Xms40m
-Xmx256m


调整为:
-vmargs
-Xms40m
-Xmx256m
-XX:PermSize=64M
-XX:MaxPermSize=128M

1g内存推荐为:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
 

 

对于MyEclipse的话,直接修改MyEclipse在桌面的快捷方式的参数就可以啦。现在解释这些参数的意思。

-vmargs:说明后面是VM的参数
-Xms40m:虚拟机占用系统的最小内存
-Xmx256m:虚拟机占用系统的最大内存
-XX:PermSize:最小堆大小。一般报内存不足时,都是说这个太小,
                       堆空间剩余小于5%就会警告,建议把这个稍微设
                               大一点,不过要视自己机器内存大小来设置
-XX:MaxPermSize:最大堆大小。这个也适当大些
-Xmx512M的5%为25.6M,理论上要求-Xmx的数值与-XX:MaxPermSize必须大于25.6M

把里面的参数改为
-vmargs 
-Xms128M 
-Xmx512M 
-XX:PermSize=128M 
-XX:MaxPermSize=256M

所以对于我而言,我只要把我的MyEclipse5.0改-XX:PermSize=128M-XX:MaxPermSize=256M,问题解决!