我有一个8兆文件。使用JAXB进行编组需要1082ms,使用DOM需要862ms,使用SAX需要438ms。这是在JDK 1.6中使用所有默认值,没有使用诸如使用woodstox的额外配置。使JAXB走得更快
在努力,以获得从JAXB更好的表现,我试图让它做使用SAX解析...
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();
这使得去更慢 - 3207ms。
我的问题是: 1.我如何让JAXB变得更快? 2.我如何100%确定它使用的底层解析机制?
+1的EclipseLink莫西(我是技术主管)。 MOXy符合JAXB 2.1和2.2。有关使用它作为您的提供者的信息,请参阅:http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html。请务必查看我们最新的2.3.2版本:http://www.eclipse.org/eclipselink/downloads/。 JiBX不是JAXB实现。 – 2011-12-24 19:16:28