kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

eclipseでTomcat使って java heap space

プロジェクトが大きく(クラス量が増えてくると)なると
tomcat起動しようとして

cause:java.lang.OutOfMemmory

モリーが足りないよー。なんて出たりする。

Web開発のプラグインWTPを使ってる場合に

プロジェクトを右クリック→実行→実行の構成→
引数 タブを選択して VM引数に、

 -Xmx768m

などと指定できるけど、どうもこの画面は見にくいんです。

ってことで、別の画面で設定しちゃおうってことで

(eclipse3.4の場合)
ウィンドウ→設定→java→インストール済みのJRE

プロジェクトが使っているJDKなどを選択して、編集→ デフォルトのVM引数 
とテキスト入力ボックスがあるからそこに、

-Xmx768m 

と入力すればよい。

今回設定してみた値は、

-server -Xmx512m -Xms512m -Xmn192m -XX:NewSize=256m 
-XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=128m 
-XX:SurvivorRatio=4 -XX:+UseParallelGC -Djava.awt.headless=true 

と(1行で記述)、いろいろな設定をしてみた。

設定してからtomcat使うと チューニングの効果は明らかに出る。
JSPコンパイル早いし、表示も早いし。
メモリが余ってる場合は、多めに確保しておくほうがよいね。

ちなみに、上記の設定はEclipse内で動作させるtomcatじゃなくても
tomcat単独で動作させる場合にも適用可能。

windowsならば、
{CATALINA_HOME}/bin
に、「setenv.bat」という名前で

set CATALINA_OPTS=-server -Xmx512m -Xms512m -Xmn192m 
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=128m ・・・・ 
-verbose:gc 

と1行で記述してファイルを置いておけば startup.bat から起動した場合にJAVA-OPTS(VM引数)を
認識してくれる。

WindowsのサービスによりTomcatを起動する場合は、別の管理用のGUI(tomcat5w.exe)で設定する必要がある。
GUIJavaというタブの
Java Options:に記述する必要がある。