有没有关于削减Java中CPU使用率的建议?

时间:2009-05-07 09:16:13

标签: java cpu-usage

我写了一个Java程序来下载HTML页面。但CPU使用率接近100%,而网络使用率低于3%。好像CPU成了我的瓶颈。如何削减CPU使用率?

7 个答案:

答案 0 :(得分:6)

使用分析器(我喜欢VisualVM),找出瓶颈并修复它!

答案 1 :(得分:5)

如果你有一个连续的while循环,那么在迭代之间给你的程序一些sleep时间。单独下载网页不应该导致大量的资源利用,你可能想查看一个分析器,找出最新的瓶颈。也许在这里发布代码可以让我们帮助你一点。

答案 2 :(得分:3)

确定问题的一个非常简单的事情就是抓住一些堆栈跟踪。 CTRL- / CTRL断/ jstack / JConsole的/ VisualVM的。如果该程序灾难性地花费大量时间来解决性能问题(合理可能),那么您应该很容易看到问题。

答案 3 :(得分:2)

如果你的CPU使用率很长一段时间接近100%,那么很可能你的代码中有一个错误(无限循环或其他东西)。尝试分析您的应用程序,看看发生了什么。从代码中的各个点打印当前时间开始。如果你仍然无法找到它,将需要一个分析器。

答案 4 :(得分:1)

也许你过快地查询数据......

我会尝试将代码更改为事件驱动的通知。

问候。

答案 5 :(得分:1)

当你读,你一次读一个字符/字节?这将加载操作系统。

使用BufferedReader,和/或尝试使用read(char [] ...)进行读取 或readLine()取决于您正在阅读的内容。

答案 6 :(得分:0)

您是否有机会使用内置的Java XML DOM解析HTML?根据过去的经验,它可能会导致一些相当大的CPU使用率(而且这是我见过的最慢的实现,老实说)。如果是这样,您可能需要考虑用于XML解析的第三方库(例如JDOM)。