warum sax-parsing ist schneller als dom Parsen ? und wie funktioniert stax Arbeit?

etwas im Zusammenhang zu: libxml2 von java

ja, diese Frage ist eher zu umständlich - sorry. Hielt ich ist als Dicke als ich spürte, wie möglich. Ich Fett die Fragen, um die es leichter machen, einen Blick auf, bevor Sie Lesen die ganze Sache.

Warum ist sax-parsing ist schneller als dom Parsen? Das einzige, was ich mit oben kommen kann ist, dass w/sax sind Sie wahrscheinlich ignorieren die meisten der ankommenden Daten, und damit keine Zeit verschwenden, Verarbeitung von teilen des xml, das Sie nicht kümmern. IOW - nach dem Parsen w/SAX, Sie können nicht neu erstellen, die ursprüngliche Eingabe. Wenn Sie schrieb Ihre SAX-parser so, dass es entfielen auf jeden xml-Knoten (und damit der Wiederherstellung der ursprünglichen), dann würde es nicht schneller als DOM würde?

Den Grund ich Frage ist, dass ich versuche zu Parsen von xml-Dokumenten schneller. Ich brauche Zugriff auf die gesamte xml-Struktur NACH dem Parsen. Ich Schreibe eine Plattform für 3rd-party-services, plug-in, so kann ich nicht vorhersehen, welche Teile des xml-Dokuments benötigt werden und welche Teile nicht. Ich weiß gar nicht, wie die Struktur der eingehenden Dokument. Dies ist der Grund, warum ich kann nicht mit jaxb oder sax. Arbeitsspeicher ist kein Problem für mich, weil die xml-Dokumente sind klein und ich brauche nur 1 im Speicher. Es ist die Zeit, die zum Parsen dieses relativ kleine xml-Dokument, das mich zu töten. Ich habe nicht verwendet stax vor, aber vielleicht brauche ich, um weiter zu untersuchen, da es möglicherweise einen Mittelweg? Wenn ich das richtig verstehe, stax hält die ursprüngliche xml-Struktur und-Prozesse, die Teile, die ich bitte für on-demand? Auf diese Weise, den ursprünglichen parse-Zeit kann schnell sein, aber jedes mal, wenn ich bitten es zu durchqueren ist Teil der Struktur, die er noch nicht Durchlaufen, das ist, wenn die Verarbeitung erfolgt?

Wenn Sie einen link, das beantwortet die meisten der Fragen, die ich akzeptiere Ihre Antwort (die Sie nicht haben, um direkt meine Fragen beantworten, wenn Sie schon beantwortet anderswo).

update: ich schrieb es in sax und analysiert die Dokumente auf avg 2.1 ms. Dies ist eine Verbesserung um 16% schneller) über die 2,5 ms, wurde dom unter, aber es ist nicht die Größenordnung, die ich (et al) hätte geahnt,

Dank

InformationsquelleAutor der Frage andersonbd1 | 2010-09-29

Schreibe einen Kommentar