java的運行平台JVM(java虛擬機)在一個應用程序啟動的時候,虛擬機都要分配一個最的內存和最小內存給他的。對於內存吃內存狂的JAVA來說,這個初始內存和最大內存在一定程度會對應用程序的性能產生很大的影響。比如說在我們的應用程序用到JVM給的這個最大內存配額的時候,JVM就不得不先停下我們的應用程
序的工作,去尋找可以回手的垃圾(釋放已經無用的對象占用的內存),釋放被占用的一些內存。
一般我們為了自己配額的這個最大值和最小值都是在啟動java程序的時候加參數:-X
ms -Xmx來調整應用程序的初始內存和最大內存,其中Xms代表最小配額,Xmx代表最大配額
。
在前段時間,我用resin(一個免費的JSP運行平台)的時候啟動文件裡面還好設置這兩個參數,但是換了tomcat(一個很好用的JSP運行平台)以
後就不一樣了,
tomcat(一個很好用的JSP運行平台)的啟動並不是普通的java程序那樣,是經過了封裝的,所以在設置這兩個參數
的時候還有寫麻煩,不過只要是java程序,總有地方可以設置這個參數的。
在查找了一些資料以後終於搞定了,可以通過下面這兩種方法來解決:
1. 就需要在環境變量中加上tomcat(一個很好用的JSP運行平台)_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="%JA
VA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%"
-Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCL
ASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替換成-Xms64m -Xmx512m
e.g
update file :
omcat(一個很好用的JSP運行平台)incatalina.bat
update the line
set JAVA_OPTS=-Xmx256M -Xms64M
means max cache & min cache