java应用程序的高CPU使用率

时间:2010-12-24 09:57:19

标签: java

我的java应用程序的cpu使用率更高(有时为80-100%)。我的应用程序在其中使用http数据传输。我使用jConsole检查了cpu使用情况。从那时我意识到一些线程池使用更多的cpu时间。我不知道如何在该池中找到线程。有人请帮我找到导致更多CPU使用的线程..

4 个答案:

答案 0 :(得分:3)

尝试使用VisualVM而不是JConsole来监视您的应用程序。我不确定但VisualVM的线程分析器应该让我的功能更丰富。

答案 1 :(得分:2)

一种方法是使用完整的分析器,例如YourKit(您可以从他们的网站下载免费的评估版)。它会告诉你哪些线程正在占用CPU,以及它们到底在做什么。

答案 2 :(得分:2)

this等分析工具可以帮助您找到应用中的热点。

但是,为什么你认为使用大量CPU是件坏事?如果有工作要做,那么你想完成它,所以你将使用CPU。如果您有一个多线程应用程序,一些线程正在处理其他人从网络中读取内容,那么高CPU使用率可能正是应该发生的事情 - 例如,如果对检索到的数据进行了大量分析。

答案 3 :(得分:0)

使用JConsole中的topthreads插件可以快速显示忙线程忙于处理的内容...使用

启动它
jconsole -pluginpath topthreads.jar

您可以在此处下载topthreads jar文件:http://lsd.luminis.eu/new_version_topthreads_jconsole_plugin/