Eclipse – java.lang.OutOfMemoryError:Javaヒープスペース
Eclipse IDEで、プログラムが次のように大量のメモリを消費している(ビッグデータをロードしている)場合:
Listlist = domainBo.findAllDomain(100000); for(Domain domain : list){ process(domain.getDomainName()); }
java.lang.OutOfMemoryError: Java heap space
に簡単にヒットする可能性があります:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.HashMap.(HashMap.java:209) at java.util.LinkedHashMap. (LinkedHashMap.java:181)
1. ソリューション– VM引数
Eclipseメニューで、Run -> Run Configurations..
をクリックし、実行するJavaアプリケーションを選択し、Arguments
タブをクリックして、VM引数を次のオプションで更新します。
-Xms- Set initial Java heap size -Xmx - Set maximum Java heap size
たとえば、-Xms512M -Xmx1024M
2. 間違い– eclipse.ini
eclipse.ini
のメモリ設定は、実行するプログラムではなく、EclipseIDEにのみ割り当てられます。 非常によくある間違いは、ヒープサイズをeclipse.ini
で更新し、上記のメモリ不足の問題を解決することを期待しています。
Note
Javaアプリケーション、Ant / Mavenビルドスクリプト、または単体テストケースは、Eclipseから外部ツールとして実行され、eclipse.iniのVM設定を継承しません。
ただし、Eclipse IDEが理由もなく常にクラッシュする場合は、ヒープサイズとperm genをeclipse.ini
で増やすことができます。
/Users/example/Downloads/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini
-startu openFile -showsplash //... -XX:MaxPermSize=512m -Xms512m -Xmx1024m //... -Xdock:icon=../Resources/Eclipse.icns -XstartOnFirstThread
P.S eclipse.ini is located in the Eclipse installation folder.