search 2013 adfgs
作者:Sky.Jian | 可以任意转载, 但转载时务必以超链接形式标明文章原始出处 和 作者信息 及 版权声明
链接:http://isky000.com/software/%e8%ae%a9jvm%e7%bb%99%e4%bd%a0%e7%9a%84%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e6%9b%b4%e5%a4%9a%e7%9a%84%e5%86%85%e5%ad%98 | del.icio.us | Twitter it

我想稍微对java的运行平台JVM(java虚拟机)有一点点了解的人都知道在一个应用程序启动的时候,虚拟机都要分配一个最的内存和最小内存给他的。对于内存吃内存狂的JAVA来说,这个初始内存和最大内存在一定程度会对应用程序的性能产生很大的影响。比如说在我们的应用程序用到JVM给的这个最大内存配额的时候,JVM就不得不先停下我们的应用程序的工作,去寻找可以回手的垃圾(释放已经无用的对象占用的内存),释放被占用的一些内存。

一般我们为了自己配额的这个最大值和最小值都是在启动java程序的时候加参数:-Xms -Xmx来调整应用程序的初始内存和最大内存,其中Xms代表最小配额,Xmx代表最大配额。

比如:java -Xms128 -Xmx512 sky000.java

这里就是在启动sky000这个java程序的时候让JVM给他分配最小128M内存最多512M内存。

在前段时间,我用resin的时候启动文件里面还好设置这两个参数,但是换了tomcat以后就不一样了,

tomcat的启动并不是普通的java程序那样,是经过了封装的,所以在设置这两个参数的时候还有写麻烦,不过只要是java程序,总有地方可以设置这个参数的。

在查找了一些资料以后终于搞定了,可以通过下面这两种方法来解决:

1. 就需要在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,
如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms是最小的,mx是最大,64m, 512m分别是指内存的容量.

2. 修改Catalina.bat文件
在166行“rem Execute Java with the applicable properties ”以下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs=”%JAVA_ENDORSED_DIRS%” -classpath “%CLASSPATH%” -Dcatalina.base=”%CATALINA_BASE%” -Dcatalina.home=”%CATALINA_HOME%” -Djava.io.tmpdir=”%CATALINA_TMPDIR%” %MAINCLASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替换成-Xms64m -Xmx512m

看完了要说点啥么?