2012-08-10 11 views
6

Estoy utilizando XStream para convertir XML en objetos. Estoy convirtiendo xml grande. He encontrado a continuación dos declaraciones.Rendimiento del controlador Xstream

XStream xstream = new XStream(new DomDriver()); 

XStream xstream = new XStream(new StaxDriver()); 

Dado que estoy utilizando un xml grande para la conversión, ¿cuál de ellos da un mejor rendimiento? ¿por qué?

Por favor ayuda.

+0

¿qué pasa con BinaryStreamDriver? – guilhermecgs

Respuesta

3

Staxdriver debería funcionar mejor ya que utiliza la tecnología de análisis de extracción, que es la tecnología más rápida para analizar xml y utiliza menos memoria ya que el documento no está cargado en la memoria como para dom.

+0

De forma predeterminada, XStream usa XppDriver, que también utiliza el analizador de extracción. En mis pruebas con datos de producción reales, StaxDriver es aproximadamente un 10% más lento que XppDriver predeterminado de XStream en serialización y deserialización. – Sergio

2

El StaxDriver analizará los datos progresivamente para que pueda ser más eficiente. Solo funciona con analizadores Stax. Si desea utilizar un analizador DOM, debe usar DomParser.