1. 程式人生 > >myeclipse tomcat啟動,記憶體溢位問題

myeclipse tomcat啟動,記憶體溢位問題

在 啟動過程中出現 記憶體 溢位問題,丟擲類似如下異常資訊:
java.lang.OutOfMemoryError: Java heap space

可以嘗試辦法:
A.修改Tomcat\bin\catalina.bat,新增如下內容
set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true [-XX:MaxPermSize=128M]

B.eclipse->windows->preferences..->tomcat->jvm..->jvm文字框裡,新增-Xms256m -Xmx512m

C.eclipse->preference->java->instal jres->edit,增加引數:-Xms256m -Xmx512m

參考原因: JVM中如果98%的時間是用於GC且可用的, Heap size不足2%的時候將丟擲此異常資訊。
JVM堆的設定是指java程式執行過程中JVM可以調配使用的記憶體空間的設定.JVM在啟動的時候會自動設定Heap size的值,其初始空間(即-Xms)是實體記憶體的1/64,最大空間(-Xmx)是實體記憶體的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設定。Heap Size 最大不要超過可用實體記憶體的80%,一般的要將-Xms和-Xmx選項設定為相同,而-Xmn為1/4的-Xmx值。
Heap size的 -Xms -Xmn 設定不要超出實體記憶體的大小。否則會提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。

朋友們,上面僅僅是問題表面的解決,根本上的解決還需要藉助JVM記憶體監測工具,有待研究。。。。。
=============================

啟動MyEclipse啟動Tomcat無視catalina.bat中設定記憶體大小的問題。
在tomcat的catalina.bat中設定set JAVA_OPTS=-Xms128m -Xmx256m,直接使用startup.bat啟動tomcat沒有問題。但是在myeclipse中配置tomcat後,通過myeclipse啟 動就出現記憶體溢位,之前在catalina.bat中設定的記憶體似乎沒有作用。
解決方法:視窗->首選項->MyEcliipse->Application Servers->Tomcat->Tomcat5.x->JDK->Optional Java VM arguments中填寫一下內容。
-Xms128m -Xmx256m
-Dcom.sun.management.jmxremote=true
記憶體具體大小視具體情況制定。

tomcat分為安裝和壓縮包形式,安裝的情況catalina.bat設定、使用系統服務不會生效,而是儲存在登錄檔中,位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions 修改時視情況而定。