OutOfMemoryError kommt nicht/Bug in Java?

burninhell

Neues Mitglied
Hallo,

ich bin mit folgendem Verhalten konfrontiert: Ich habe ein Programm, das mit Fremdkomponenten org.w3c.dom.Document Objekte austauscht und erstelle an einer Stelle ein solches Dokument über JAXP (also ich serialisiere ein Objekt nach XML). Dies funktionierte plötzlich letztens nicht mehr und es liegt an der größeren Input-Datenmenge. Das Problem war, dem auf die Schliche zu kommen, denn eine entsprechende Exception ist nicht geflogen, sondern alle Kerne waren plötzlich voll ausgelastet.
Zuerst habe ich versucht zu debuggen, und das Verhalten tritt einige Sekunden nach dem Aufruf von
Java:
javax.xml.bind.Marshaller.marshal(object, document);
auf. Laut VisualVM hat der Heap noch Luft und die CPU macht nichts, aber der Taskmanager zeigt einen XMX Speicherverbrauch und eine Last von 100% auf allen Kernen bei javaw.exe.
Das Verhalten gibt es so auf mehreren Systemen mit 1.7 und auch 1.8. Auch nach 12h kommt es zu keiner Exception.
Weil ich den Marshaller nicht debuggen konnte, hab ich die Serialisierung nach XML gleich selbst mit dem DOM "Parser" gemacht: Gleiches Ergebnis, aber eine Schleifenvariable zeigte mir dass es rasend schnell bis zu einer bestimmten Grenze ging und dann jeder Schleifendurchlauf etwas langsamer wurde. Anfangs 10000/sek, rapide langsamer werdend in den Bereich von 1/sek und später 1/min. Dh, irgendwie läuft mein Programm noch, allerdings ultralangsam gegen unendlich. Die Grenze an der es langsamer wird kam abrupt.
Nächster Schritt: XML mit SAX in Bytearray schreiben und dann mit DOM einlesen: Sax läuft durch aber dann beim einlesen ins DOM: gleiches Ergebnis.

Obwohl ich mir dank VisualVM sicher war, es könne nicht am Speicher liegen, hab ich den in Schritten erweitert:
2G: oben beschriebenes Verhalten bei 1,7G
4G: oben beschriebenes Verhalten bei 3,5G
6G: oben beschriebenes Verhalten bei 5G
8G: läuft durch mit Peak bei ca 5G

Es gibt also eindeutig ein Speicherproblem und ich bekomme bei entsprechender Datenmenge und zu kleiner XMX Config auch einen OutOfMemoryError zB vom SAX geworfen, aber beim JAXP/DOM eben nicht. Interessant ist, dass im Kritischen Moment 3 weitere Threads gestartet werden (so dass alle 4 Kerne ausgelastet sind) VisualVM keine Last und weniger Speicherverbrauch anzeigt, aber im Taskmanager javaw.exe den Speicher und die Kerne auslastet. Es fühlt sich für mich an, wie ein Bug in der VM bei der Speicherallozierung im Heap, allerdings bisher nur bei der Benutzung des DOM bzw JAXP (was vermutlich nur ein Wrapper dafür ist).

Google hat nicht geholfen, deswegen: Hat jemand vielleicht dafür auch nur den Ansatz einer Erklärung?
 

turtle

Top Contributor
Bug in der VM bei der Speicherallozierung im Heap
Du kannst davon ausgehen, das die Speicherallozierung in der JVM funktioniert.:)

Du kannst dein Prog starten so dass angegeben wird was der GC so macht, denn meine Vermutung ist, das der sehr beschäftigt zu sein scheint
Code:
java -verbose:gc
 

burninhell

Neues Mitglied
Ja, es scheint der GC zu sein. Leider wird das in VisualVM nicht so dargestellt, dennn dort wird der GC ohne Last angezeigt, aber vermutlich geht auch die Kommunikation zu VisualVM nicht mehr, weil der GC die Gesamte CPU beansprucht.
Frage: Kann man den GC "besser" konfigurieren, also dass er nicht aller Ressourcen beanspruchen kann oder auf eine Anzahl von Kernen/Threads beschränkt ist? Es gibt ja den Parameter

-XX:+UseParNewGC

Es scheint ja so zu sein, als ob das bei mir automatisch der Standard wäre. Kann man vielleicht auf den nicht-parallelen GC zurückgreifen?

Wieso Versucht der GC eigentlich stundenlang mit voller Last ein freies Byte zu finden, anstatt einen MemoryError zu werfen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Apache fop - OutOfMemoryError Allgemeine Java-Themen 10
L Java OutOfMemoryError Java heap space Allgemeine Java-Themen 3
Maxim6394 OutOfMemoryError nicht nachvollziehbar Allgemeine Java-Themen 8
reibi OutOfMemoryError bei Behandlung von BufferedImage's Allgemeine Java-Themen 6
E OutOfMemoryError bei Verschlüsselungsalgorithmus Allgemeine Java-Themen 3
L java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 10
H java.lang.OutOfMemoryError bei der wiederholten Erzeugng von Threads Allgemeine Java-Themen 8
D OutOfMemoryError:Java hep space Allgemeine Java-Themen 7
M OutOfMemoryError in nebenläufigen Threads Allgemeine Java-Themen 6
C nach ca. 1 Stunde OutOfMemoryError Allgemeine Java-Themen 15
Shoox OutOfMemoryError Allgemeine Java-Themen 10
J Crawler selbst geschreiben: OutOfMemoryError Allgemeine Java-Themen 14
A OutOfMemoryError: Java heap space Allgemeine Java-Themen 11
K OutOfMemoryError: Java heap space troz -Xms1024m Allgemeine Java-Themen 2
P OutOfMemoryError beim XML erstellen bzw parsen, mehr RAM? Allgemeine Java-Themen 4
R OutofMemoryError bei CharArraywriter Allgemeine Java-Themen 5
F OutOfMemoryError: Java heap space - Speicher verändern Allgemeine Java-Themen 8
J java Thread java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 7
B OutOfMemoryError und Arraylisten Allgemeine Java-Themen 2
G Error: java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 2
S java.lang.OutOfMemoryError: Java Allgemeine Java-Themen 22
M java.lang.OutOfMemoryError Allgemeine Java-Themen 2
F java.lang.OutOfMemoryError: Java heap space Allgemeine Java-Themen 22
S fehlermeldung java.lang.OutOfMemoryError Allgemeine Java-Themen 5
G outOfMemoryError beim Einlesen einer Datei abfangen? Allgemeine Java-Themen 13
H Skalieren von Image -> java.lang.OutOfMemoryError - WARUM Allgemeine Java-Themen 18
G jTable-Problem --> java.lang.OutOfMemoryError Allgemeine Java-Themen 5
F java.lang.OutOfMemoryError Allgemeine Java-Themen 13
C OutOfMemoryError lokalisieren Allgemeine Java-Themen 9
M java.lang.OutOfMemoryError Allgemeine Java-Themen 7
T jva.lang.OutOfMemoryError Allgemeine Java-Themen 8
F java.lang.OutOfMemoryError Allgemeine Java-Themen 17
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
N Wie kommt dieses Ergebnis zu stande Allgemeine Java-Themen 15
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
N [GWT] JavaMail kommt nicht an Allgemeine Java-Themen 9
A Compiler-Fehler Woher kommt der NullPointer? (Collections & Iterator) Allgemeine Java-Themen 7
S Warten, bis ein Impuls von außen kommt. Allgemeine Java-Themen 2
P Ascii Bild aus einem input file nur kommt nix im outputfile an?????? Allgemeine Java-Themen 5
F Geworfene Exception kommt nicht an Allgemeine Java-Themen 6
D Fehler, woher kommt er? Allgemeine Java-Themen 9
F Weiß nicht warum Exception kommt Allgemeine Java-Themen 15
N Xor Warum kommt Flasches Zeichen in Java Allgemeine Java-Themen 36
G Warum kommt hier NullPointerException? Allgemeine Java-Themen 3
M HashMap kommt beim Löschen aus dem Tritt Allgemeine Java-Themen 6
E JExcel- Zugriff auf leere Zellen kommt eine Fehlermeldung Allgemeine Java-Themen 6
T Fehlersuche bzw. woher kommt diese ausgabe? Allgemeine Java-Themen 2
C ge2001.exe - Hilfe kommt bei F8 (run) in JCreator Allgemeine Java-Themen 22
R Objekttyp ermitteln das aus generischer Collection kommt Allgemeine Java-Themen 3
P Wann kommt denn nun 1.5 überhaupt? Allgemeine Java-Themen 6
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8
M Warum bekommen ich den Result nicht ? Allgemeine Java-Themen 17
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben