2011-02-09 103 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。 –