Ho un file da 8 Meg. Il marshalling con JAXB impiega 1082 ms, utilizzando DOM prende 862 ms, utilizzando SAX richiede 438 ms. Questo utilizza tutte le impostazioni predefinite con JDK 1.6, non viene utilizzata alcuna configurazione aggiuntiva come l'uso di woodtox.Fai andare JAXB più veloce
Nel tentativo, per ottenere prestazioni migliori da JAXB, cerco di farlo usare SAX parsing facendo ...
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();
Questo fa andare anche più lenti - 3207ms.
Le mie domande sono: 1. Come faccio a far andare JAXB più veloce? 2. Come posso essere sicuro al 100% del meccanismo di analisi che sta utilizzando?
+1 per EclipseLink Moxy (io sono in vantaggio tecnologico). MOXy è compatibile con JAXB 2.1 e 2.2. Per informazioni su come utilizzarlo come provider vedi: http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html. Assicurati di dare un'occhiata alla nostra ultima versione 2.3.2: http://www.eclipse.org/eclipselink/downloads/. JiBX non è un'implementazione JAXB. –