为了使JVM的资源利用更合理,往往需要手动设置JVM的初始值。下面将详细介绍不同环境下的JVM配置。
1、如果是应用程序,则:java -Xms800m -Xmx800m 你的类名
java -Xms32m -Xmx800m className
就是在执行JAVA类文件时加上这个参数,其中className是需要执行的确类名。(包括包名)
2、IDEA
我现在开发用的工具是idea,配置路径如下:
至于要配置多大的初始内存,可以根据自己机器的内存进行更改。
JVM内存设置多大合适?Xmx和Xmn如何设置?参看链接:https://blog.csdn.net/losetowin/article/details/78569001;有对JVM设置的介绍。
实例,以下给出1G内存环境下java jvm 的参数设置参考:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
3、Eclipse的配置路径如下:很大的web工程,用tomcat默认分配的内存空间无法启动,如果不是在myeclipse中启动tomcat可以对tomcat这样设置:
TOMCAT_HOME/bin/catalina.bat 中添加这样一句话:
set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m
如果要在myeclipse中启动,上述的修改就不起作用了,可如下设置:
在Eclilpse中修改启动参数,在VM arguments 加入了-Xms32m -Xmx800m,问题解决。
4、如果用的tomcat,在windows下,可以在tomcat的bin目录下的
catalina.bat 中rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
后面添加如下配置:
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
set JAVA_OPTS=-Xms1024m -Xmx1024m -Xmn=256m -XX:PermSize=128M -XX:MaxPermSize=128m -Djava.awt.headless=true
if not "%CATALINA_HOME%" == "" goto gotHome
这里的set的意思就是设置环境变量的意思。
注意:只有startup.bat启动tomcat,设置才能生效,如果利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms384m -Xmx384m没起作用。
5、Linux系统
在tomcat的/bin/catalina.sh里进行配置,如下:
export JAVA_OPTS="-Xms512m -Xmx2048m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit" # OS specific support. $var _must_ be set to either true or false. cygwin=false
export的意思是将局部变量设置为环境变量。
JAVA_OPTS是系统变量,准备金系统现在的配置,需要再加上上述的jvm配置信息。