OutOfMemoryError: PermGen space

Wer mit NetBeans und der Java Enterprise Edition arbeitet, der wird während der aktiven Entwicklung (mit einem JBoss -oder GlassFish Application Server) schon mal auf java.lang.OutOfMemoryError: PermGen space gestoßen sein. Dieser Fehler tritt auf, wenn die Deploy-Funktion häufig in relativ kurzer Zeit benutzt wird.

Bei häufigem Deployment sammeln sich nämlich die Objekt-Instanzen der Anwendungen im Arbeitsspeicher an, und zwar so lange bis kein Speicher mehr verfügbar ist („out of memory“). Wenn dieser Fehler aufgetreten ist, dann hilft nur ein Schließen von NetBeans. Außerdem sollten alle Java-Prozesse (java.exe und javaw.exe) über den Task-Manager beendet werden.

Man kann den PermGen space erweitern. Dadurch wird der Fehler zwar nicht behoben aber er tritt wesentlich seltener (später) auf. Dazu muss man die Datei „C:\Program Files\NetBeans\etc\netbeans.conf“ editieren und folgenden Zeilen einpflegen:

netbeans.conf

1
2
3
4
5
6
7
8
9
10
...
# If you specify the heap size (-Xmx) explicitely, you may also want to enable
# Concurrent Mark & Sweep garbage collector. In such case add the following
# options to the netbeans_default_options:
# (see http://wiki.netbeans.org/wiki/view/FaqGCPauses)
-J-XX:+UseConcMarkSweepGC
-J-XX:+CMSClassUnloadingEnabled
-J-XX:+CMSPermGenSweepingEnabled
-J-XX:MaxPermSize=512M
...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.