在对写完后的代码做性能试验时发现解析大量xml字符串花费时间超级多,几万条数据就已经要几十秒
(鬼知道为什么客户的电文是xml字符串),由于我只需要其中几个字段,所以这里用正则去找标签内的值,几万条电文1-2秒结束。
Pattern p1=Pattern.compile("<aaa>(.*?)</aaa>");
Matcher m1=p1.matcher(message);
while(m1.find()){
setMerchantCodeTs(m1.group(1));
break;
}
如果每个标签都要解析的话,可能就要另外想办法了,或许用循环的方式重复调用上面的代码都要比直接直接解析xml字符串要好的多(没测试过)。
顺便提下,之前的代码是
Document document = DocumentHelper.parseText(message);
Element element = document.getRootElement();
然后一个个取里面标签内的值,由于每一行电文解析都要调用一次解析xml的方法,很慢,严重影响性能。
java解析大量xml形式的电文花费时间很多(一行一条电文,电文是xml字符串)
最新推荐文章于 2024-08-26 20:47:56 发布