Einfache SAX - DOM Performancefrage

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
also ich hätte einmal eine Frage bzgl. der Performance von SAX und (J)Dom:

Bisher parse ich eine XML Datei mit SAX, da ich später auf best. Teile zugreifen will speichere ich entsprechend
die Struktur in einer HashMap (der aufbau der xml datei ist entsprechend das sich das speichern in hashmap anbietet).

Später nehme ich dann Werte aus der HashMap raus, evtl. keine oder nur wenige oder vielleicht alle. Zumindest suche ich darin und verwende evtl. Informationen daraus.

Nachdem ich so weit war hab ich mich gefragt ob nicht (J)Dom die bessere Lösung gewesen wäre? Weil wenn ich alles in der HashMap speichere hab ich ja auch praktisch den ganzen Dokumentenbaum im Speicher und ich greife nachher drauf zu.

Was würdet ihr sagen: (J)Dom nehmen und nachher gezielt auf Elemente/Attribute zugreifen oder so wie bisher SAX -> in HashMap speichern -> in HashMap suchen, bzw. evtl. Informationen rausnehmen?
 
G

Gast

Gast
ja,das hab ich mir nachher auch gedacht. es macht also keinen unterschied vom speicherbedarf etc. her ob ich nun alles mit sax parse und in hashmap speichere oder direkt (j)drom nehme?
 

Dante

Bekanntes Mitglied
naja, potentiell wird jdom schon etwas mehr speicher verbrauchen, die frage ist halt, ob das überhaupt interessiert, wieviel zig mb xml willst du denn parsen? Ab einer bestimmten Menge bekommst du mit beiden Lösungen probleme, daher wird man bei SAX-Parsern eigentlich nix zwischenspeichern, sondern möglichst immer einen Datensatz komplett auslesen und dann wegspeichern oder was man sonst damit vor hat, so bleibt nix im Speicher.
 

Bleiglanz

Gesperrter Benutzer
wenn das Dokument klein ist oder genügend Speicher da ist oder man alles braucht (bzw. man die volle Struktur benötigt)

=> DOM, JDom, XOM oder ein anderes Baum API

nur wenn das ggf. Riesendokumente sind und wenn man NICHT alles braucht, oder auch nur auf die "Baumstruktur" verzichten kann, dann SAX

SAX ist halt schneller und benötigt weniger Speicher
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben