プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Eclipseからアプリを実行して、OutOfMemoryErrorが出たでござる

 Tasteの跡を継ぐオープンソースのリコメンドエンジンのMahoutで遊んでいる最中です。このアプリはドキュメントに書いている通り、大量のメモリを消費します。サンプルアプリを作ってlivedoor clipsのデータ(150万件くらい)をサンプルに動かしたら案の定下記のようなエラーが出ました。

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

 Eclipseの起動の設定でメモリを増やしても変わらずです。よくよく調べてみると、Eclipse起動時の設定はEclipseが使うメモリの設定です。なので、そこから個々のアプリのメモリの使用は、個々に指定する必要があります。
実行->Javaアプリケーションをする前に、Open実行Dialogで設定画面を開きArguments VM arguments:で、-Xmx256mといった感じで適当なサイズのメモリを割り当てれば問題解決です。


 ちなみにEclipseに割り当てるメモリの設定は下記のような感じです。
通常のjreだと余り大きなサイズを割り当てるとエラーを起こすので、jdkを指定すると吉です。

C:\tools\pleiades-all-in-one-java-wtp_20080303\eclipse.exe -vm "C:\Program Files\Java\jdk1.6.0_12\bin\javaw.exe" -vmargs -Xms256m -Xmx1024m