Tengo un archivo XML bastante grande que necesito analizar en una estructura de clase .NET (para ser mapeado a un formato de registro de longitud fija y transmitido a través de MQ). El rendimiento es importante, pero no absolutamente crítico.¿Cuán grande es la diferencia de velocidad entre XPathNavigator y XmlReader, realmente?
Casi siempre uso XPathNavigator
para leer archivos XML porque es mucho más fácil que XmlReader
. Por otro lado, sé que XmlReader
es más rápido que XPathNavigator
, porque teóricamente solo lee un nodo a la vez, mientras que XPathNavigator
tiene que leer lo suficiente para ejecutar un XPath, posiblemente todo el documento.
Mi pregunta es: ¿cuánto más rápido es realmente? ¿Hará una diferencia notable al leer unos miles de nodos? ¿Cuál es el punto de inflexión en el que casi tengo que cambiar a XmlReader
? ¿O está optimizado el XPathNavigator
hasta el punto de que siempre es una buena opción?
La mayor parte de mi experiencia en XML se basa en archivos relativamente pequeños, por lo que estoy buscando la opinión de cualquier persona que haya trabajado con archivos grandes.