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.