您可以预处理Java中的XML文件以使加载/进一步处理更快吗?

时间:2018-10-16 22:22:20

标签: java regex xml string

我想知道我是否可以改善应用程序中的字符串处理。 我创建了一个测试XML [用于RSS,因为我想成为哥伦布] 6.7 MB文件,并且正在通过RegEx处理文本以适合行长:

String returnString=returnString+"Text      : " + 
 e.getChildText("description").
replaceAll("(?<=\\G.{70,81}(?=\\s))",
"\n           ")+" \n";

每个处理过的项目[org.jdom2.Element]大约需要8-16毫秒[Intel i7 gen 7,笔记本电脑],因此在我仔细检查一下将近7 MB的文件之前,我并不感到不满意。

处理需要65-75秒。

我可以做某种预处理来加快处理速度吗?

完全欢迎其他语言/其他方法。除了C。

编辑:我正在org.jdom2.Element内部处理一个字符串。

1 个答案:

答案 0 :(得分:1)

如果您要进行单个更改,则不太可能。

如果您要进行几处更改,那么很有可能。

如果您正在运行多个正则表达式,那么您将不断地反复遍历,复制和修改字符串多次。

在某些时候,将XML解析一次(例如,解析为DOM),在高层次上对其进行迭代以进行较小的更改,然后再将XML呈现回字符串中,这样比较便宜。交叉点的位置取决于字符串的整体大小,更改次数,解析和渲染的成本等。因此,最好尝试制定一些基准测试,以了解哪种方法更好。