gpt4 book ai didi

java - 寻找有关如何提高 Java 代码片段性能的建议

转载 作者:行者123 更新时间:2023-11-29 07:16:02 25 4
gpt4 key购买 nike

在我的项目中,我需要下载一个html(读入String大约50K-100K长,是的,相当胖),并使用正则表达式获取一些内容,然后将它们插入到数据库中。性能很差,我想知道为什么。

代码的流程是这样的(多线程):

  1. 使用httpcomponents将html文件下载成String(String html)
  2. 使用正则表达式获取内容,并插入(数据库为mysql)
Pattern p = Pattern.compile("<h.*</a></h.>",Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(html);
boolean result = m.find();
while (result) {
//insert into database stuff
//update database stuff
}

字符串很长,但如果我把它分成几段,可能会漏掉一些匹配项。这非常令人不安。

我添加了一些打印行,发现在插入数据库之后,在更新操作之前有一些延迟,但我无法弄清楚,因为与数据库的连接没有关闭。

最佳答案

  1. 尽量避免正则表达式,使用标准的 HTML 解析器,如 JSoup , 有许多。我希望它们可能更有效,至少比 Regex 更有效。

  2. 如果使用正则表达式,尽量不要每次都编译正则表达式。可以为 Pattern 设置私有(private)静态。但这并不是性能的巨大提升,只是良好的实践。

  3. 为数据库使用连接池。如果可能,进行批量插入。

关于java - 寻找有关如何提高 Java 代码片段性能的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9582342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com