Schneller XML Parser
-
Ich suche einen C++ XML-Parser, der insbesondere (mittel)große Dateien zügig einlesen kann. Ich habe hier eine Testdatei mit ~9MB, das Programm soll aber auch in der Gegend von ~30MB-Dateien noch anständig funktionieren.
Google spuckt natürlich eine ganze Anzahl von Parsern aus, die alle durchzuprobieren wirkt etwas mühsam für mich. Habt ihr gute Empfehlungen?
-
Im XML-Magazin wurde mal Xerces-C++ mit ner großen Datei (mehrere MBs, waren sogar glaub ich 30 MB) getestet, der hat die ohne probleme in einer akzeptablen Zeit vararbeitet. Ist aber schon etwas länger her, auf einem aktuellen PC müsste das Ding noch schneller laufen.
Ob es der schnellste auf dem C++-Markt ist, kann ich aber nicht sagen. Wurde ursprünglich von IBM entwickelt. Ist vom Interface her nicht der Brüller, aber funktioniert und erfüllt viele XML-Spezifikationen.Er ist halt neben dem von MS halt der bekannteste. TinyXML ist eher so ein Minimalisten-Parser, der erfüllt evtl. nicht alle Anforderungen.
-
Ich denke mal, dass bei einem XML-Parser, die Geschwindigkeit ehr von der Festplatte gebremst wird, als das Parsen in anspruch nehmen wird. Bist du dir sicher, dass der XML-Parser der Performance kritische Teil wird?
-
Wir haben http://xerces.apache.org/xerces-c/ im Einsatz und haben damit schon mehrere GB große Dateien durcharbeiten können. Performance ist dabei nie ein Problem gewesen.
-
illuminator schrieb:
Wir haben http://xerces.apache.org/xerces-c/ im Einsatz und haben damit schon mehrere GB große Dateien durcharbeiten können. Performance ist dabei nie ein Problem gewesen.
Die API von Xerces-C ist ja mal sowas von widerlich.

-
ProgChild schrieb:
Ich denke mal, dass bei einem XML-Parser, die Geschwindigkeit ehr von der Festplatte gebremst wird, als das Parsen in anspruch nehmen wird. Bist du dir sicher, dass der XML-Parser der Performance kritische Teil wird?
Bisher habe ich meine Testdatei via der Standardlib von Ruby eingelesen - und da war es ein Problem. Ich werde das Programm aber (in Teilen) in C++ schreiben, und da wollte ich mir den Ärger gleich mal ersparen.
@Rest: Ich werde mal Xerces ausprobieren. Vielen Dank!
-
Mr. N schrieb:
illuminator schrieb:
Wir haben http://xerces.apache.org/xerces-c/ im Einsatz und haben damit schon mehrere GB große Dateien durcharbeiten können. Performance ist dabei nie ein Problem gewesen.
Die API von Xerces-C ist ja mal sowas von widerlich.

Hähä, ganz deiner Meinung:
Artchi schrieb:
Ist vom Interface her nicht der Brüller
Ich sage jetzt nicht warum das so ist.
