2011-02-09 72 views
2

我编写了一个程序,它在启动时运行大约96%的CPU,然后在崩溃之前非常迅速地将CPU提示到100%。我需要跟踪CPU不断完成的任务,无论是正在运行的程序还是正在进行的特定方法或调用。Java CPU占用率高达100%

任何建议或链接?

谢谢。

+3

你可以租用你的代码(特别是发生崩溃的地方),还有一个堆栈跟踪以帮助我们进行调试吗?如果你不这样做,我们无法真正帮助你。谢谢! – JasCav

+0

您正在使用哪个版本的java? – LB40

+0

“撞车”的意思是? –

回答

5

Java VisualVM应该有所帮助。它是一个包含在标准JDK中的工具。它允许您分析和检查正在运行的Java程序。它应该和你的javac可执行文件在同一个目录下。

以下是用于调用该工具的命令行的quick synopsis

+1

他没有提到JDK版本,jvisualvm仅适用于JDK 1.6及更高版本。虽然它是一个伟大的实用程序使用。 +1。 – Favonius

+0

@Favonius:好的电话!仍然有很多旧版本的Java。我不能认为每个人都会使用最新的。 –

+0

我正在使用JDK 1.6,所以会试用。谢谢! – mhollander38

4

您可以开始分析您的应用程序。

由于您没有提到Java版本,所以我安全地假设SUN JDK 1.5。

对于启动可以使用:

  1. http://jrat.sourceforge.net/
  2. NetBeans IDE中探查在你的程序检查瓶颈。

其次,您可以使用JConsole监视应用程序中的内存使用情况。它在你的<JDK HOME>\bin

如果您使用的是SUN JDK 1.6,那么作为A. Levy提到的,使用jvisualvm进行CPU和堆分析。

然后可能发布您的代码片段。

+0

+1替代分析器。如果我需要在1.6以前的JVM上进行配置文件,我会尝试记住JRAT。 –