JVM内存大小设立
一般情况下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最大使用内存:
-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
-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