2012-04-22 7 views
1

:-Xms1000M -Xmx4000M -mx1000m 私はまだjava.lang.OutOfMemoryErrorを取得する:私はこれらの数字のいずれかを増加しようとした場合のJavaヒープスペースJavaベースのOutOfMemoryErrorと-Xms1000M -Xmx4000M -mx1000m

を、I次のJVMエラーが発生します。

Error occurred during initialization of VM

Could not reserve enough space for object heap

Could not create the Java virtual machine.

このOutOfMemoryErrorの問題をどのように解決できますか? (ディスクにメモリをキャッシュする必要がある場合でも)

+6

OoMエラーが発生していますか? – Makoto

+0

どこかでメモリリークが発生する可能性があります。プロファイラーを使って確かめてください。 –

+0

私はjai-imageioライブラリを使って100MbのJPEG2000ファイルを読み込んでいます。 –

答えて

4

システムにはどのくらいのメモリがありますか?あなたは窓を走っていますか? 32ビットWindows JVMでは、1Gヒープ以上は作成できません。 Xmsの設定がこの制限より大きい場合、JVMは初期化に失敗します。

JPEG画像が圧縮されています。 100MのJPEGは非常に大きく、一度イメージのlibによって圧縮解除されると大きくなります。 1Gヒープを持つOOMはかなり考えられます。

バリー

+0

はい、32ビットのウィンドウです。 RAMメモリではなくヒープメモリ用のファイルを使用するようにJVMに指示する方法はありますか(32ビットウィンドウでもヒープ領域を増やすことができるようにするため)? –

+1

スペースをスワップできますが、32ビットシステムのヒープサイズは約1.2〜1.5 GBに制限されています。理論上32ビットシステムでアクセスできるものは最大で4 GB(つまり2^32)、Windowsの制限は3.5 GBです。取得できる連続的なメモリは、ヒープサイズを制限するものです。 BTW:物理メモリを超えると、プログラムは10倍以上遅くなります。 –

関連する問題