Größe eines JDOM-Dokuments

Status
Nicht offen für weitere Antworten.
K

Kumarunster

Gast
Hallo an Alle!
Hat schon jemand die Erfahrung mit den großen XML-Dateien gehabt?
Wie groß kann denn ein JDOM-Dokument wirklich werden?

Diese Frage hat folgenden Hintergrund:

Ich arbeite an einem DB-gestützten Programm, welches XML-Dateien produzieren soll.
Diese XML-Dateien dürfen um die 50MB (!) groß werden.

Nun habe ich einen Test gemacht. In der DB waren 1 000 000 Datensätze vorhanden. Daraus habe ich die XML-Datei mit JDOM erstellt. Alle 5 000 Sätze habe ich die Datei gespeichert. Nun, gekommen ist das Testprogramm nur bis 40 000. (Letzte Speicherung). Dann kam "OutofMemory-Error". Ich habe auf meinem Rechner 1 GB Arbeitsspeicher. Die XML-Datei ist 10MB groß geworden.


Gibt es die Möglichkeit, dass JDOM seinen Baum im Speicher in die Auslagerungsdatei swappt?

Ich würde gerne bei JDOM bleiben, weil viele andere Teilprojekte bei uns JDOM einsetzen und nicht zuletzt brauche ich die XPath-Unterstützung...
 

Bleiglanz

Gesperrter Benutzer
vergiss es!

40.000 records => 10MB (BTW: wenn du das zippst, sinds nur noch ein paar hundert kilobytes)

was glaubst du wohl wie gross das 1000000 Datensätze-File werden wird? wohl so um die 250 MB, so eine datei ist etwas unhandlich...

und im speicher wird das noch VIEL mehr wenn du (J)-DOM einsetzt!!

das mit dem swappen kannst du auch vergessen, oder willst du tagelang warten?

=> verwende eine xml datenbank zusammen mit XQuery oder eine normales RDBMS mit xml-funktionalität (Oracle, DB2, usw.)

Problem dürfte XPath sein, das funktioniert eigentlich nur, wenn der vollständige dom-baum im speicher ist... :), aber wenn ihr das eh aus einer Datenbank holt, dann wär der Zugriff über SQL "direkt an der Quelle" wohl einfacher; wozu erst in XML und dann nochmal abfragen??
 
G

Guest

Gast
Du warst aber schnell!
Danke!

mit den 1 000 000 Sätzen war es nur ein Test, um zu sehen, wie weit ich komme:)
Tatsächlich können aber bis zu 100 000 Sätze in der Realität vorkommen.
Bin halt bis 40 000 gekommen...

Als RDBMS verwenden wir DB2, Oracle und MS-SQL-Server.

Die Struktur der Tabellen, aus denen ich die XMLs erzeuge ist etwas andere als die, die in dem XML-Dok ist.

Beim Erstellen benutze ich eine leere XML-Vorlage, in der dann die bestimmten Elemente mit XPath selektiert werden. An diese Elemente werden dann die neu erzeugten Elemente mit den Daten aus der DB drangehängt.

Am Ende der Erstellung muss die Datei gegen ein XML-Schema validiert werden.

Wie gesagt, die XML-Datei darf 50 MB groß werden!

Die Laufzeit bei der Erstellung der großen Datei ist erstmal unwichtig. Es kann auch tagelang laufen, ist kein Problem. Die Datei wird sowieso nur 2 Mal im Jahr erstellt... Deswegen auch die Frage mit dem swap. Geht das nicht grundsätzlich?
Oder gibt es irgendeine Möglcihkeit?
 

Bleiglanz

Gesperrter Benutzer
kannst du nicht aus den Datenbanken die entsprechenden XML Fragmente als Strings rausholen (FOR XML usw.)

und dann einfach diese Strings literal in der richtigen Reihenfolge in einen FileWriter rausschreiben

-> geht natürlich nur, wenn die XPath ausdrücke nicht zu komplex sind...

(diese Datei dann - wenn sie fertig ist - validieren, könnte mit SAX ja hinhauen)

zum Swap: das hat ja erstmal nichts mit Java zu tun, setzt einfach beim Start deines Programms mit Xmx den Heap auf einen riesigen Wert, könnte aber sein - je nach OS - dass bei 2GB schluss ist?!

mach mal deinen Test und lass dir den Speicherverbrauch ausgeben, würde mich mal interessieren, wie "aufblähend" JDOM auf Dokumente wirkt :)

Swappen sollte ja dann das Betriebssystem, das ist aber dann der Kriechgang...
 
K

Kumarunster

Gast
werde mal probieren.
die derzeitigen VM-Parametre sind bei mir so eingestellt: -Xms64m -Xmx512m

ist eigentlich groß genug.... nur für jdom nicht. :x
 
K

Kumarunster

Gast
Hallo!
hab heute Mittag den Test durchgeführt. (gestern hatte keine Zeit mehr)

also.

Die VM-Parameter habe ich so eingestellt: -Xms512m -Xmx1024m (einfach mal ausprobieren)
und die 1 000 000 Sätze in die XML-Datei reingeschrieben. Und das mit Erfolg!!!!! :lol:

So, und jetzt Mal die Daten: die gesamt CPU-Laufzeit: 2,5 Stunden, wobei die Erstellung selber ungefähr 1 Minute gedauert hat, der Rest war Schreiben in die Datei. Maximale Speicherverbrauch war 753M, Virtueller Spiecherverbrauch 908M. Es waren 408000 Seitenfehler aufgetreten.

Und jetzt das Lustigste: die Datei auf dem Datenträger ist 117 Mb geworden (bemerkung: unformatiert, d.h. kein Pretty-XML-Format). Gezippt aber nur noch 8 Mb!. 8)

und Fazit des Ganzen: gib dem JDOM genug Speicher, und er macht das schon!.... :wink:

Bleiglanz, danke für den Tipp!

Ciao :lol:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A XML-Datei: Ab wann kritische Größe erreicht? XML & JSON 4
T "Parent" Node eines Attributes XML & JSON 2
M Kann Anbieter eines (REST) Webservice seine Konsumenten automatisch benachrichtigen? XML & JSON 9
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
R Zugriff auf Inhalt eines Elements XML & JSON 2
D DTD genaue Anzahl eines Elements XML & JSON 0
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
A Fehler beim Erzeugen eines XML-Schema XML & JSON 4
K Einlesen eines Parameters aus HTML-Datei XML & JSON 4
G xpath: Inhalt eines Kindelements auslesen XML & JSON 2
T Möchte JSP Code in Attribut eines HTML Tags hinein generieren XML & JSON 3
T xsl schleife alle kindeelemtente eines elternelementes durchlaufen XML & JSON 2
K XML als Inhalt eines DropDown XML & JSON 6
M Probleme beim Parsen eines gefilterten XML-Dokuments XML & JSON 6
S XMLStreamReader, letzten eintrag eines xml lesen? XML & JSON 5
F Marshaling eines JAXB Objektes worin ein anderes JAXB Objekt eingeschlossen ist XML & JSON 6
C Kompletten Inhalt eines Tags ausgeben XML & JSON 2
G Welche Klassen zum erzeugen/auslesen eines XML Files verwend XML & JSON 9
Wildcard Namespace Präfixe eines Elements XML & JSON 8
G XML Export und Import eines Files. gibts Tutorials o.ä? XML & JSON 2
G Rekonstruktion eines XML Dokumentes XML & JSON 3
M TextContent eines XML-Elements enthält HTML-Tags . was nun XML & JSON 2
J DOM: Attribut und Inhalt eines Elements nachträglich ändern? XML & JSON 3
H Elemente eines Node auslesen XML & JSON 2
P Problem beim erstellen eines neuen Elements (JDOM) XML & JSON 5
S Problem beim Erstellen eines pdfs XML & JSON 3
P JDOM oder SAX XML & JSON 3
Hijo2006 Grundsätzliches zu JDOM 2.x XML & JSON 1
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S JDom XML ein Element hinzufügen. XML & JSON 1
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
J JDOM XMLOutputter getPrettyFormat() XML & JSON 3
H JDOM setAttribute Reihenfolge XML & JSON 3
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
F Aus XML mit JDOM aus Elementattributen Werte rauslesen XML & JSON 4
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
T Dom, Jdom, Sax XML & JSON 8
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
Helgon JDOM schreibt nicht XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
G xml, jdom "Entität wurde referenziert aber nicht deklariert." XML & JSON 4
A XSL und JDom XML & JSON 3
G jdom-Klassen in Eclipse importieren XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S JDOM nur Attribut Name XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
S jdom hasChildren()? XML & JSON 1
T Frage zu getContent unter jdom XML & JSON 6
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D jdom, xml, login-system XML & JSON 4
N JDOM: XML einlesen XML & JSON 4
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
lordcarlos jdom zu iso-8859-15 zwingen XML & JSON 4
P jdom XML-Encoding auslesen XML & JSON 12
E JDOM - letzem child Attribut hinzufügen XML & JSON 4
H Schema-Validierung mit JDOM XML & JSON 2
lordcarlos JDOM und entfernen von children XML & JSON 4
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
T jdom.jar als Relativer Pfad in Eclipse einbinden XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
S XML, UTF-8, JDOM und Umlaute XML & JSON 3
E XML - JDOM - Bäume: was würdet ihr hier machen? XML & JSON 11
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
T JDOM Bibiliothek XML & JSON 3
K JDOM vs. DOM, Schnittstellen XML & JSON 5
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
0x7F800000 jdom mit xml.transform inkompatibel, was soll ich nehmen? XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A JDOM und Sonderzeichen < > XML & JSON 17
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
S Jdom+java webstart XML & JSON 4
K html -> cyberneko -> xml -> jdom . XML & JSON 3
I JDom Text ändern XML & JSON 4
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
C XPath in JDOM klappt nicht XML & JSON 2
S Harte Nuss mit XML und JDOM XML & JSON 2
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
B jdom: getChildren() problem XML & JSON 4
T Bild in XML per JDOM XML & JSON 4
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
T Elemente zählen mit JDOM in XML XML & JSON 7
B jdom document aus string erzeugen? XML & JSON 1
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
T XML mit JDOM auslesen => langsam? XML & JSON 7
B jdom outputter ohne attribute XML & JSON 2
C XML encoding UTF-8 und JDOM XML & JSON 4
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
R key aus xml lesen mittels jdom XML & JSON 5
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben