OutOfMemoryError beim XML erstellen bzw parsen, mehr RAM?

Status
Nicht offen für weitere Antworten.
P

PeterK!

Gast
Hi Leute,

ich hab ein Problem, dass meinem Applet (in HTML Seite integriert) beim XML erstellen bzw beim XML parsen der Speicher ausgeht. Besonderheit: ich erstelle xml im RAM und verschicke es dann dann übers Netz (deswegen die Umwandlung zum InputStream) bzw lade die XML Datei übers Netz und parse sie in der Anwendung.

Das geht bis zu einer bestimmten Größe problemlos, danach kommt der Java heap space Fehler.
Ich habe schon angefangen alle Variablen, die mehr als nur einen String / Int oder Float enthalten auf Null zu setzen und regelmäßig den GarbageCollector aufzurufen... das hat aber nicht sehr viel gebracht!

hier ein Codeauschnitt zum XML erstellen:
Code:
(...)
InputStream instream = null;
		
try {
			
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	DocumentBuilder docBuilder = factory.newDocumentBuilder();
	Document doc = docBuilder.newDocument();
			
	// die Wurzel des XML Files
	Element root = doc.createElement("capture");
	doc.appendChild(root);
			
	/* hier wird einiges eingehängt */

	TransformerFactory tranFactory = TransformerFactory.newInstance();
	Transformer aTransformer = tranFactory.newTransformer();
	aTransformer.setOutputProperty(OutputKeys.INDENT, "yes");
			
	Source src = new DOMSource(doc);
	ByteArrayOutputStream bout = new ByteArrayOutputStream();
	Result result = new StreamResult(bout);
			
	aTransformer.transform(src, result);
			
	instream = new ByteArrayInputStream(bout.toByteArray());

	tranFactory = null;
	aTransformer = null;
	src = null;
	doc = null;
	bout = null;
	result = null;
	System.gc();
			
} catch (Exception e) {
	System.out.println(e.getMessage());
}
		
return instream;
(...)

hier ein Codeauschnitt vom Lesen:
Code:
(...)
try {
	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	DocumentBuilder docBuilder = factory.newDocumentBuilder();
	Document doc = docBuilder.parse(instream);
			
	instream = null;
	System.gc();
			
	/* hier wird zwischendurch noch so manches andere gelesen */
			
	// Frames
	NodeList XML_frames = doc.getElementsByTagName("frames").item(0).getChildNodes();
	int anzahl_unsortiert = XML_frames.getLength();
			
	int k = 0;
	for(int i = 0; i < anzahl_unsortiert; i++){
		Node XML_frame = XML_frames.item(i);
				
		if(istleererNode(XML_frame)){
			continue;
		}
				
		int id = Integer.valueOf(XML_frame.getAttributes().getNamedItem("id").getNodeValue());

		if(werte[id].leseXML(XML_frame)){
			k++;
		}
		XML_frame = null;
	}
			
	if(k != frames_anzahl){
		isOK = false;
		//System.out.println("Probleme bei den Frames!");
	}
			
	doc = null;
	XML_frames = null;
	docBuilder = null;
	factory = null;
	System.gc();

} catch (NumberFormatException e){
	//System.out.println("Umwandlungsproblem");
	isOK = false;
} catch (Exception e) {
	//System.out.println(e.getMessage());
	isOK = false;
}
(...)

		
/* Unterklasse */
		
public boolean leseXML(Node frame){
		
	boolean isOK = true;
	try{
		NodeList XML_markers = frame.getChildNodes();
		int unsort = XML_markers.getLength();
			
		for(int i = 0; i < unsort; i++){
			Node XML_marker = XML_markers.item(i);
				
			if(istleererNode(XML_marker)){
				continue;
			}
				
			String name = XML_marker.getAttributes().getNamedItem("name").getNodeValue();
			Float x = Float.valueOf(XML_marker.getAttributes().getNamedItem("x").getNodeValue());
			Float y = Float.valueOf(XML_marker.getAttributes().getNamedItem("y").getNodeValue());
			Float z = Float.valueOf(XML_marker.getAttributes().getNamedItem("z").getNodeValue());
				
			werte.put(name, new Point3f(x, y, z));
				
			XML_marker = null;
				
			//System.out.println("Marker " + name + ": x: " + x + ", y: " + y + ", z: " + z);
		}
			
		XML_markers = null;
		//System.gc();
			
	}catch(Exception e){
			isOK = false;
	}

	return isOK;
}

Habt ihr ne bessere Idee, wie ich mit dem XML umgehen kann, oder wie ich den erlaubten Arbeitsspeicher erhöhen kann?

Vielen Dank für eure Lösungsvorschläge.

Grüße, Peter
 

Wildcard

Top Contributor
Bei Applets ist der Speicher auf 64MiB begrenzt. Wenn du mehr brauchst hast du Pech und musst auf eine Applikation oder Webstart umsteigen
 
P

PeterK!

Gast
Es ist ein Webstart. Nur so als Applet auf einer Webseite eingebettet:
Code:
<html>
<head>
</head>
<body>
<applet code="org.jdesktop.applet.util.JNLPAppletLauncher"
      width=650
      height=760
      archive="http://127.0.0.1/webstart/viewer.jar,
               [url]http://download.java.net/media/applet-launcher/applet-launcher.jar[/url],
               [url]http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dcore.jar[/url],
               [url]http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dutils.jar[/url],
               [url]http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jar[/url],
               [url]http://download.java.net/media/gluegen/webstart/gluegen-rt.jar[/url],
               http://download.java.net/media/java3d/webstart/release/vecmath/latest/vecmath.jar">
   <param name="codebase_lookup" value="false">
   <param name="subapplet.classname" value="tool.Uploader_Applet">
   <param name="subapplet.displayname" value="Upload-Tool">
   <param name="jnlpNumExtensions" value="1">
   <param name="username" value="ich bin ich!">
   <param name="user_id" value="1">
   <param name="url" value="http://127.0.0.1/da/capture-archiver/">
   <param name="jnlpExtension1" value="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp">
   <param name="progressbar" value="true">
   <param name="noddraw.check" value="true">
 </applet>
</body>
</html>
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G outOfMemoryError beim Einlesen einer Datei abfangen? Allgemeine Java-Themen 13
H Apache fop - OutOfMemoryError Allgemeine Java-Themen 10
L Java OutOfMemoryError Java heap space Allgemeine Java-Themen 3
B OutOfMemoryError kommt nicht/Bug in Java? Allgemeine Java-Themen 2
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
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
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
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
B Stringmanipulationen beim Dateinamen Allgemeine Java-Themen 8
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
J Mein Frame friert ein beim Uploaden Allgemeine Java-Themen 4
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
A Hilfe beim Verständnis Allgemeine Java-Themen 16
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
K Verbesserung der Laufzeit beim Sortieren von Einwohnern nach ihrem Geburtsjahr Allgemeine Java-Themen 0
B Compiler-Fehler Probleme beim Kompilieren mit Jsoup Allgemeine Java-Themen 8
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
W Suche Ursache für NPE - woher kommt sie? (Hilfe beim Debugging) Allgemeine Java-Themen 19
U Fehler beim Compillieren Allgemeine Java-Themen 13
B neuroph hält beim XOR lernen nicht an Allgemeine Java-Themen 13
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
J Jasper Report - seltame Meldung beim compilieren Allgemeine Java-Themen 3
J Linux .jar beim Start automatisch ausführen Allgemeine Java-Themen 6
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
L Compiler-Fehler Generics beim Anhängen von Predicates Allgemeine Java-Themen 1
J WARNING: An illegal reflective access operation has occurred, beim Compilieren von JasperReports, was bedeutet das ? Allgemeine Java-Themen 23
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
T Compiler-Fehler NoClassDefFoundError beim Laden einer Class Allgemeine Java-Themen 11
S Seitenausrichtung beim Drucken Allgemeine Java-Themen 1
RalleYTN Brauche Hilfe beim Run-Length-Decoding Allgemeine Java-Themen 9
R Optimierung beim Vergleichen von 2 Bildern Allgemeine Java-Themen 23
F SQLite mit Java / Probleme beim INSERT Befehl Allgemeine Java-Themen 4
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
M Beim Öffnen Dialog Directory und Filetype definieren Allgemeine Java-Themen 2
G Problem beim GUI Allgemeine Java-Themen 9
A Probleme beim Verstehen einer Aufgabenstellung Allgemeine Java-Themen 11
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
J Konstruktor in JSP beim Kompilieren nicht gefunden Allgemeine Java-Themen 3
perlenfischer1984 Probleme beim Mocken Allgemeine Java-Themen 6
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
D Pivot-Wahl beim QuickSort steigert die Effizienz, eine Lüge??? Allgemeine Java-Themen 17
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
U Swing Hilfe beim Quellcode für ein Codierungs-/Decodierungsprogramm Allgemeine Java-Themen 9
Fischkralle Beim Clean Coden an den Schnittstellen geschnitten. Allgemeine Java-Themen 10
H Beim Konstruktor "this" Allgemeine Java-Themen 4
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
Thallius Swing Merkwürdiges Verhalten beim Panel Tausch Allgemeine Java-Themen 3
Tacofan Sound beim öffnen der GUI Allgemeine Java-Themen 8
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
B Endlosschleife beim Verteilen von Objekten Allgemeine Java-Themen 4
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
B Fortschritt beim Schreiben einer Datei ausgeben lassen Allgemeine Java-Themen 7
J JDK installieren Das Jdk funtioniert beim Editor nicht. Allgemeine Java-Themen 3
R Verdrückt beim Sicherheitshinweis Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben