Necesito saber cómo el rendimiento de las diferentes herramientas XML (analizadores, validadores, evaluadores de expresiones XPath, etc.) se ve afectado por el tamaño y la complejidad del documento de entrada. ¿Existen recursos que documentan cómo el tiempo de CPU y el uso de la memoria se ven afectados por ... bueno, qué? ¿Tamaño del documento en bytes? Número de nodos? ¿Y la relación es lineal, polinómica o peor?Complejidad algorítmica de los analizadores/validadores XML
actualización
En un artículo publicado en la revista IEEE Computer, vol 41 n ° 9, sept 2008, los autores encuesta de cuatro modelos de análisis de XML populares (DOM, SAX, Stax y VTD). Ejecutan algunas pruebas de rendimiento muy básicas que muestran que un analizador DOM tendrá su rendimiento reducido a la mitad cuando el tamaño del archivo de entrada aumente de 1 a 15 KB a 1 a 15 MB o aproximadamente 1000 veces más. El rendimiento de los otros modelos no se ve significativamente afectado.
Desafortunadamente no realizaron estudios más detallados, como el uso de rendimiento/memoria en función del número de nodos/tamaño.
El artículo es here.
actualización
he podido encontrar ningún tratamiento formal de este problema. Por lo que vale, he realizado algunos experimentos para medir la cantidad de nodos en un documento XML en función del tamaño del documento en bytes. Estoy trabajando en un sistema de gestión de almacenes y los documentos XML son documentos de almacén típicos, p. aviso de envío avanzado, etc.
El siguiente gráfico muestra la relación entre el tamaño en bytes y el número de nodos (que debe ser proporcional a la huella de memoria del documento en un modelo DOM). Los diferentes colores corresponden a diferentes tipos de documentos. La escala es log/log. La línea negra es la que mejor se ajusta a los puntos azules. Es interesante observar que para todo tipo de documentos, la relación entre el tamaño del byte y el tamaño del nodo es lineal, pero que el coeficiente de proporcionalidad puede ser muy diferente.
uhhh ¡Gráficos! Siempre guay. Buenas actualizaciones! – svrist