我正在使用 STAX 解析器来处理 xhtml 中的每个文本节点。该应用程序部署在 Unix 盒子中。解析操作在执行第一个实例时需要更多时间。当我第二次运行时,它花费的时间相对较少,在随后的调用中,它比第二次运行花费的时间要少得多,此后的结果几乎一致。下面是我正在使用的代码。不知道为什么解析相同输入所花费的时间不一致。请帮忙。
一次创建 XmlInputFactory,(类级别的静态方法)
static {
if (xmlInputFactory == null) {
xmlInputFactory = XMLInputFactory.newInstance();
xmlInputFactory.setProperty(javax.xml.stream.XMLInputFactory.IS_NAMESPACE_AWARE, false);
}
}
执行不一致的解析代码为同一输入文件提供不同的响应时间,
private static void parse(String xhtmlInput) throws XMLStreamException {
ByteArrayInputStream arrayInputStream = new ByteArrayInputStream (xhtmlInput.getBytes(Charset.forName("UTF-8")));
XMLStreamReader parser = xmlInputFactory.createXMLStreamReader(arrayInputStream);
while (true) {
int currentEvent = parser.next();
if (currentEvent == XMLStreamConstants.CHARACTERS) {
// Do operation
} else if (currentEvent == XMLStreamConstants.END_DOCUMENT) {
parser.close();
break;
}
}
}