程序啟動(dòng)時(shí)都會(huì)JVM都會(huì)分配一個(gè)初始內(nèi)存和最大內(nèi)存給這個(gè)應(yīng)用程序。這個(gè)初始內(nèi)存和最大內(nèi)存在一定程度都會(huì)影響程序的性能。比如說在應(yīng)用程序用到最大內(nèi)存的時(shí)候,JVM是要先去做垃圾回收的動(dòng)作,釋放被占用的一些內(nèi)存。
??????? 所以想調(diào)整Tomcat的啟動(dòng)時(shí)初始內(nèi)存和最大內(nèi)存就需要向JVM聲明,一般的JAVA程序在運(yùn)行都可以通過中-Xms -Xmx來調(diào)整應(yīng)用程序的初始內(nèi)存和最大內(nèi)存:
??????? 如:java -Xms64m? -Xmx128m? xxxx.jar.
tomcat的啟動(dòng)程序是包裝過的,不能直接使用java -X..... tomcat.*來改變內(nèi)存的設(shè)置。在Tomcat在改變這個(gè)設(shè)置
有兩種方法:
1.??? 就需要在環(huán)境變量中加上CATALINA_OPTS屬性,
??????? 如 SET? CATALINA_OPTS= -Xms128m -Xmx512m;
??????? ms是最小的,mx是最大,128m, 512m分別是指內(nèi)存的容量.
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% 替換成-Xms128m -Xmx512m