Frage

Ich muss eine Anwendung schreiben, die den Elementnamen-Wert (Zeitreihendaten) aus einer beliebigen XML-Quelle abreißt, sei es Datei, Webserver, einen anderen Server. Die Anwendung würde die XML konsumieren und interessierende Werte herausnehmen, sie muss sehr schnell sein (sagen wir an, 50000 Ereignisse/Sekunden oder mehr). Auch die XML -Dokumentgröße wäre enorm und die Häufigkeit dieses Dokuments könnte ebenfalls hoch sein (für Bsp. 2500 Dateien/min - mehr als 500 MB XML -Daten/Datei).

Ich möchte nur sehen, wie Sie erfahren haben, wie Sie denken, ich sollte mich daran nähern. Ich bin ein Anfänger, der gerade angefangen hat, obwohl ich jede Lösung machen kann, die Sie mir vorschlagen, egal wie hart/einfach.

Vielen Dank.

War es hilfreich?

Lösung

Wenn Sie SAX Parsing verwenden, ist Ihr Engpass das beteiligte E/A, nicht die XML -String -Verarbeitung. Und angesichts Ihrer 500 -MB -Nummer würde ich sagen, dass Sie es tun würden haben SAX Parsing anstelle von DOM -Parsen zu machen. Alles mit einer SAX -Typ -Schnittstelle sollte in Ordnung sein.

Andere Tipps

Ich bin ein Fan von Xerces, Ich denke, Sie müssen sie ausprobieren, um zu sehen, was die beste Leistung für Ihre Anwendung hat. Wie Warren sagte, Sie werden die SAX -Verarbeitung verwenden möchten. Realistisch, wenn Sie wirklich die Leistung benötigen, sollten Sie ein spezialisiertes XML -Gerät verwenden, um die Verarbeitung durchzuführen.

ich benutze libxml2 in unseren Projekten. Es unterstützt sowohl SAX als auch DOM. Wie Warren Young sagte, sollten Sie SAX verwenden. Sie könnten Expat ausprobieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top