SAX解析器的性能随着多次运行而增加

时间:2016-06-23 12:38:09

标签: java performance xml-parsing sax

我正在使用SAX解析器(扩展DefaultHandler)解析XML文件,并且可以看到如果多次解析同一文件,解析时间会减少。解析同一文件5次的时间示例如下:

  1. 总时间为ms = 257
  2. 总时间为ms = 125
  3. 总时间为ms = 50
  4. 总时间为ms = 62
  5. 总时间为ms = 30
  6. 要解析的方法如下:

            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));
    

    此行为是否有特定原因?

0 个答案:

没有答案