RapidXml is an attempt to create the fastest XML parser possible,
while retaining useability, portability and reasonable W3C
compatibility. It is an in-situ parser written in modern C++, with
parsing speed approaching that of strlen function executed on the same
data.
link
Forse potresti iniziare a confrontare Expat con questo? Expat è noto per essere veramente efficiente in termini di velocità.
RapidXml è usato come backend di alcune librerie di boost, principalmente Boost.PropertyTree.
Inoltre, penso che forse un approccio più specifico per lo schema xml potrebbe (forse) essere più efficiente grazie alla conoscenza della struttura del codice. Tale affermazione è solo una supposizione, ma se sei interessato, CodeSynthesis fornisce un generatore di codice C ++ che accetta un file xsd come input. Il codice di analisi risultante potrebbe essere più utile ... se si impiega tempo per definire il formato in un xsd. Ci sono altri strumenti simili disponibili ma è quello che sto usando per il mio ultimo progetto. Questi strumenti sono per lo più basati su xerces ma puoi generare codice che è indipendente. Non ho idea dell'impatto sulle prestazioni.