Tengo un archivo de 8 Meg. La clasificación mediante JAXB lleva 1082 ms, usando DOM lleva 862 ms, y SAX tarda 438 ms. Esto usa todos los valores predeterminados con JDK 1.6, no se usa ninguna configuración adicional, como usar woodstox.Hacer que JAXB vaya más rápido
En un esfuerzo, para obtener un mejor rendimiento de JAXB, trato de hacer que use análisis SAX haciendo ...
FileReader fr = new FileReader("myfile.xml");
JAXBContext jc = JAXBContext.newInstance(MyObjectList.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
XMLInputFactory xmlif = XMLInputFactory.newInstance();
XMLEventReader xmler = xmlif.createXMLEventReader(fr);
long beginTime = System.currentTimeMillis();
MyObjectList obj = (MyObjectList)unmarshaller.unmarshal(xmler);
long endTime = System.currentTimeMillis();
Esto hace que se vaya aún más lento - 3207ms.
Mis preguntas son: 1. ¿Cómo hago que JAXB vaya más rápido? 2. ¿Cómo puedo estar 100% seguro de qué mecanismo de análisis subyacente está utilizando?
+1 para EclipseLink moxy (Soy el plomo tecnología). MOXy es compatible con JAXB 2.1 y 2.2. Para obtener información sobre cómo usarlo como proveedor, consulte: http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html. Asegúrese de revisar nuestra última versión 2.3.2: http://www.eclipse.org/eclipselink/downloads/. JiBX no es una implementación de JAXB. –