Eclipse - java.lang.OutOfMemoryError:Javaヒープスペース

Eclipse – java.lang.OutOfMemoryError:Javaヒープスペース

Eclipse IDEで、プログラムが次のように大量のメモリを消費している(ビッグデータをロードしている)場合:

  List list = 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

eclipse-out-of-memory

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.