1. 程式人生 > >MyEclipse配置啟動Tomcat時的jvm使用的記憶體大小

MyEclipse配置啟動Tomcat時的jvm使用的記憶體大小

公司的專案是基於SSH,Tomcat啟動時預設的64M記憶體就總顯得不太夠。程式執行過程中經常出現OutOfMemError。

搜尋網上的解決方案,如果只是Tomcat本身還是比較好解決的:

在Tomcat/bin/catalina.bat檔案中增加一條環境變數的設定即可。

如下圖所示:


按照網上的說法,應該增加在 echo Using CATALINA_BASE:   "%CATALINA_BASE%" 這句話之前。不過我覺得無所謂。

經過這樣修改,在通過start.bat啟動Tomcat的時候預設的記憶體值明顯增大了。用VisualVM可以得到直觀的感受。

設定引數前的heap最大值

設定引數前的PermSize最大值

設定引數後的heap最大值:


設定引數後的PermSize最大值:

比較困難的是通過MyEclipse啟動Tomcat進行除錯時,jvm如何設定。根據網上的說法,是在Windows->Preferences->Server->Tomcat->Tomcat6.x中可填入啟動引數,如下圖所示:

根據實際情況測試,沒有任何效果。經過更換JDK,更換不同版本的Tomcat(Tomcat6,Tomcat7, x64版,i86版,安裝版,免安裝版),無一種有效。後來發現有另外一個地方需要設定,如下圖所示:

這個地方大概是設定Tomcat啟動時,呼叫的JVM的啟動引數,只有這裡設定的值足夠大,Tomcat啟動時設定的記憶體值才有意義。修改後從MyEclipse啟動。通過VisualVM可以看到heap和Perm的最大值都相應的擴大了。