我想知道我是否可以改善应用程序中的字符串处理。 我创建了一个测试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内部处理一个字符串。
答案 0 :(得分:1)
如果您要进行单个更改,则不太可能。
如果您要进行几处更改,那么很有可能。
如果您正在运行多个正则表达式,那么您将不断地反复遍历,复制和修改字符串多次。
在某些时候,将XML解析一次(例如,解析为DOM),在高层次上对其进行迭代以进行较小的更改,然后再将XML呈现回字符串中,这样比较便宜。交叉点的位置取决于字符串的整体大小,更改次数,解析和渲染的成本等。因此,最好尝试制定一些基准测试,以了解哪种方法更好。