xhtmlのすべてのテキストノードを処理するためにSTAXパーサーを使用しています。アプリケーションはUnixボックスにデプロイされます。解析操作は、最初に実行されるインスタンスに時間がかかります。2回目の実行では、比較的短時間で済み、その後の呼び出しでは、2回目の実行よりもはるかに短時間で済み、その後はほぼ一貫した結果が得られます。以下は私が使用しているコードです。同じ入力の解析にかかる時間に一貫性がない理由がわかりません。助けてください。
XmlInputFactoryの1回の作成(クラスレベルの静的メソッド)
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;
}
}
}