Fehler wegen ungenügenden Speicherplatzes und Unloading class sun.reflektieren.GeneratedMethodAccessor
Ich habe die Anwendung mit den Einstellungen: -Xmx2048M, -Xms2048M, -XX:MaxPermSize=256M festzulegen.
Manchmal bekomme ich eine Menge Meldungen im log:
[Unloading class sun.reflect.GeneratedMethodAccessor9]
[Unloading class sun.reflect.GeneratedMethodAccessor129]
[Unloading class sun.reflect.GeneratedMethodAccessor12]
[Unloading class sun.reflect.GeneratedMethodAccessor11]
[Unloading class sun.reflect.GeneratedMethodAccessor12]
[Unloading class sun.reflect.GeneratedMethodAccessor11]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor29]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor25]
und bekomme Fehler:
OutOfMemoryError: Java heap space
Nach der Lektüre dieses Artikels:
http://anshuiitk.blogspot.com/2010/11/excessive-full-garbage-collection.html
Ich weiß, dass Klassen laden in Perm Gen und sollten Fehler auftreten:
OutOfMemoryError: PermGen space.
Meine Frage, warum ich die Fehler OutOfMemoryError: Java heap space statt
OutOfMemoryError: PermGen space?
InformationsquelleAutor luk4443 | 2012-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bedeutet dies, dass Sie running out of heap space (oder Sie haben einen Raum, die nicht wachsen können, aus irgendeinem Grund)
Erhalten Sie nur
PermGen space.
als Grund, wenn die maximale für diesen Raum abläuft.Kurz gesagt, Sie werden immer diese Fehlermeldung, weil Ihre heap space nicht wachsen, um zu halten die Objekte in es.
Die Meldung gibt den PermGen gereinigt. Nicht mehr als das. Sie erhalten immer eine Volle GC vor einem
OOME Java heap space
und das wird Aufräumen alle Bereiche, einschließlich des perm gen (auch wenn es genügend Platz gibt)Bisher dachte ich, dass diese Fehler wegen ungenügenden Speicherplatzes ist das auslösen von weichen Referenzen bei der GC nicht richtig sauber. Aber es scheint, gibt es ein weiterer Grund, der OOME?
Weiche Referenzen können ändern Sie Ihre GC Verhalten, aber nicht auslösen OMEE, es sei denn, Sie haben viele Millionen von Ihnen.
Danke. Ich habe mehrere hundert Meldungen wie Unloading class sun.reflektieren.GeneratedMethodAccessor. Heap spase steigt auf etwa 1,8 G und das auslösen eines OOEM. Es gibt also sehr intensive Objekt erstellen oder einfach nur memory leaks?
InformationsquelleAutor Peter Lawrey
Wie @Peter sagt, es ist ein heap-Problem. Entladen ist eine Nebenwirkung der vollständige garbage collection, keine Anzeichen von irgendetwas geht schief.
Hier ist, wie zu beheben und zu verhindern OOMs:
-XX:+HeapDumpOnOutOfMemoryError
zu hotspot, die option hat keine Leistungseinbußenjmap -histo
ist eine gute option, da es genießt wenig Leistung Treffer.InformationsquelleAutor bestsss