就速度而言,用 Java 优化程序有哪些通用方法。我正在使用 DOM 解析器解析 XML 文件,然后将某些单词存储在 ArrayList 中,删除所有重复项,然后通过为每个单词创建 Google 搜索 URL 来拼写检查这些单词,获取 html 文档,找到更正的单词并将其保存到另一个 ArrayList。
任何帮助将不胜感激!谢谢。
最佳答案
为什么需要提高性能?根据您的解释,很明显这里的大瓶颈(或性能影响)将是IO,因为您正在访问 URL。
这肯定会使您在数据结构或 XML 框架中所做的任何微小改进都相形见绌。
这是一个很好的一般经验法则,您的大性能问题将涉及 IO。够幽默的,我此刻正在等待数据库查询以批处理方式返回。它已经运行了将近一个小时。但是我欢迎任何对我的 XML 解析库的改进建议!
以下是我的一般方法:
从延迟 (IO) 的角度来看,您的程序是否执行任何明显昂贵的任务?您是否有足够的日志记录来查看这是延迟的地方(如果显着)?
您的程序是否容易发生锁争用(即它是否可以等待,什么也不做,等待某些资源“空闲”)? 也许您正在锁定整个
Map
,同时对要存储的值进行昂贵的计算,从而阻止其他线程访问该 map是否有一些明显的算法(可能用于数据匹配或排序)可能具有较差的特性?
运行分析器(例如
jvisualvm
,它随 JDK 本身一起提供)并查看您的代码热点。 JVM 将时间花在哪里?
关于java - 优化程序速度的一般方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4199425/