2011年5月29日日曜日

javaで大きなサイズの画像ファイルを扱う時:OutOfMemoryError

大きなサイズの画像ファイルを扱う時、OutOfMemoryErrorが出て、プログラムが落ちることがある。先日書いたPlanetFollow.javaも、4枚以上の画像を解析すると、エラーが出て落ちてしまった。Image.flush() などをやってみたが、なかなかうまく行かない。

そこで、最初からヒープの大きさを「手で」広げてやると、とりあえずはなんとか動く。たとえば、PlanetFollow.javaの場合は512MBにしてやると、とりあえずは10枚は処理できる。

実際には、
java -Xms256m -Xmx512m PlanetFollow
として実行すればよい。

0 件のコメント: