私は8メグのファイルを持っています。JAXBを使用したマーシャリングには1082ミリ秒、DOMを使用した場合は862ミリ秒、SAXを使用した場合は438ミリ秒かかります。これは、JDK 1.6ですべてのデフォルトを使用しており、woodstoxの使用などの追加の構成は使用されません。
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%確認するにはどうすればよいですか?