Java应用程序的高cpu使用率

Java应用程序的高cpu使用率,java,Java,我的java应用程序的cpu使用率更高(有时为80-100%)。我的应用程序使用http数据传输,我使用jConsole检查了cpu的使用情况。从那以后,我意识到一些线程池使用了更多的cpu时间。我不知道如何找到池中的线程。有人请帮我找到导致更多cpu使用的线程。一种方法是使用一个成熟的探查器,例如(您可以从他们的网站下载免费的评估版本)。它将准确地告诉您哪些线程占用了CPU,以及它们具体在做什么。尝试使用VisualVM而不是JConsole来监视您的应用程序。我不确定,但是VisualVM的

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

一种方法是使用一个成熟的探查器,例如(您可以从他们的网站下载免费的评估版本)。它将准确地告诉您哪些线程占用了CPU,以及它们具体在做什么。

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

一个分析工具,例如,应该可以帮助您找到应用程序中的热点


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

在JConsole中使用topthreads插件将快速揭示繁忙线程正在忙什么。。。从

jconsole -pluginpath topthreads.jar

您可以在此处下载topthreads jar文件:

如果您不发布相关代码,我们如何帮助您发现应用程序的问题?您必须在问题上投入更多精力-这就像“请完成我的家庭作业”我不确定是否仍然如此,但VisualVm随JDK提供,它包含在我安装的1.6.0_10版本中。@aix,我下载了yourkit,但那是针对java6的。我的应用程序是在java5中运行的。到目前为止,我使用jconsole来监视内存等。它没有提供任何关于线程的信息,因为线程占用了更多的cpu时间。您知道java5的任何分析器,并提供cpu使用信息吗???