qual è il parser XML più efficiente per C ++?
-
05-07-2019 - |
Domanda
Devo scrivere un'applicazione che recupera la coppia valore nome elemento (dati di serie storiche) da qualsiasi sorgente xml, sia essa file, server Web, qualsiasi altro server. l'applicazione consumerebbe l'XML ed eliminerebbe i valori di interesse, deve essere molto veloce (diciamo 50000 eventi / secondi o più) anche le dimensioni del documento XML sarebbero enormi e anche la frequenza di questi documenti potrebbe essere alta (per es. 2500 file / min - oltre 500 MB di dati / file XML).
Voglio solo vedere come hai vissuto le persone che pensano che dovrei affrontarlo. Sono un principiante che ha appena iniziato, anche se posso fare qualsiasi soluzione tu mi suggerisca, non importa quanto sia difficile / facile.
Grazie mille.
Soluzione
Se si utilizza l'analisi SAX, il collo di bottiglia è l'I / O interessato, non l'elaborazione della stringa XML. E dato il tuo numero di 500 MB, direi che dovresti eseguire l'analisi SAX anziché l'analisi DOM. Quindi, qualsiasi cosa con un'interfaccia di tipo SAX dovrebbe andare bene.
Altri suggerimenti
Sono un fan di Xerces , penso che dovrete provali per vedere quali sono le migliori prestazioni per la tua applicazione. Come Warren ha detto che vorrai usare l'elaborazione SAX. Realisticamente se hai davvero bisogno delle prestazioni dovresti usare un'appliance XML specializzata per eseguire l'elaborazione.
Uso libxml2 nei nostri progetti. Supporta sia SAX che DOM. Come diceva Warren Young, dovresti usare SAX. Puoi provare Expat.