我正在使用SAX解析器(扩展DefaultHandler)解析XML文件,并且可以看到如果多次解析同一文件,解析时间会减少。解析同一文件5次的时间示例如下:
要解析的方法如下:
public void deSerialize(String xml){
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
MyParserHandler userhandler = new MyParserHandler();
saxParser.parse(new InputSource(new ByteArrayInputStream(xml.getBytes("utf-8"))), userhandler);
}
即使每次从不同的文件中读取相同的xml内容,缩短时间的模式仍然保持不变。
对于每次迭代,都会调用该方法。我正在使用以下来衡量时间
long time1 = System.currentTimeMillis();
MyParserHandler.deserializeXML(xml);
long time2 = System.currentTimeMillis();
System.out.println("TOTAL PARSE TIME IN ms = " + (time2-time1));
此行为是否有特定原因?