Java CPU资源消耗,100%

Java CPU资源消耗,100%,java,cpu-usage,Java,Cpu Usage,我已经写了一个程序,当它启动时运行大约96%的CPU,然后很快提示CPU到100%,然后崩溃。我需要跟踪CPU不断执行的操作,无论是正在运行的程序还是正在处理的特定方法或调用 有什么建议或链接吗 谢谢。应该会有帮助。它是标准JDK中包含的一个工具。它允许您评测和检查正在运行的Java程序。它应该与javac可执行文件位于同一目录中 下面是用于调用该工具的命令行的一部分。您可以从分析应用程序开始 由于您没有提到Java版本,因此我安全地假设SUN JDK 1.5 对于初学者,您可以使用: 或 用于

我已经写了一个程序,当它启动时运行大约96%的CPU,然后很快提示CPU到100%,然后崩溃。我需要跟踪CPU不断执行的操作,无论是正在运行的程序还是正在处理的特定方法或调用

有什么建议或链接吗

谢谢。

应该会有帮助。它是标准JDK中包含的一个工具。它允许您评测和检查正在运行的Java程序。它应该与javac可执行文件位于同一目录中


下面是用于调用该工具的命令行的一部分。

您可以从分析应用程序开始

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

对于初学者,您可以使用:

  • 用于检查程序瓶颈的NetBeans IDE分析器
  • 其次,可以使用JConsole监控应用程序中的内存使用情况。它在您的
    \bin

    如果您使用的是SunJDK1.6,那么正如A.Levy所提到的,使用jvisualvm进行CPU和堆分析


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

    您能将您的代码(尤其是发生崩溃的地方)以及堆栈跟踪一起发布,以帮助我们调试它吗?如果你不这么做,我们就帮不了你。谢谢您使用的是哪个版本的java?使用JDK1.6,代码太广泛,无法在这里发表文章,尽管我现在可以在其他地方托管它,但我希望避免这样做。如果从这些答案中我可以看出什么是滥用/保留/使用CPU,那么我可以适当地修改代码。崩溃是指程序持续运行,打印不断,但GUI变得无响应,不确定它到底在做什么。根据您的描述,您似乎正在UI线程中进行一些长时间的处理,或者可能会进入无限循环或死锁场景。如果您有单线程代码,最简单的步骤是使用
    System.out.println
    进行日志记录。他没有提到JDK版本,jvisualvm只提供JDK 1.6及更高版本。虽然它是一个伟大的实用程序使用+1.@Favonius:打得好!现在仍然有很多旧版本的Java。我不能假设每个人都会使用最新版本。我使用的是JDK1.6,所以我会尝试一下。谢谢+1用于备用探查器。如果我需要在1.6版本之前的JVM上评测,我会尽量记住JRAT。