2015-10-28 31 views
-1

內的CPU使用情況,我想衡量Java應用程序中的CPU使用率,例如如何測量方法的Java程序

System.out.println("...") 
HelloWorld應用程序的

。任何想法?我不想測量整個應用程序的CPU使用率,只測量應用程序中的方法。

有沒有辦法將應用程序的總執行時間與整個應用程序的CPU使用率關聯起來?

+0

這個問題有點不明確,因爲可能有多個方法一次執行。我使用的分析方法適用於整個應用程序的使用。您可以看到評估一個方法需要多少時間,並且這可能與CPU使用率相關。 –

+0

好的。一旦我測量了執行該方法的時間(例如'System.out.println(「...」))',我如何將測量的時間與CPU使用率相關聯? –

+0

你可以更新你的問題,爲什麼你想這樣做?即使您可以看到執行單個方法時CPU峯值可能會出現什麼情況,對於負載測試整個應用程序而言,這並不一定是有用的數據點。 –

回答

1

在我看來,分析單一方法沒有意義。因爲a)很容易發現資源佔用方法(即,如果必須遍歷10000個輸入值才能找到要輸出的100個有效值,那麼很明顯,您無法在9900年中有效並浪費CPU時間無用的迭代)和b)高效設計的關鍵是預見資源浪費,並再次使用與點a相同的例子,作爲設計者,您可以找到更高效的解決問題的方法,使用更精簡和更快的數據結構或只是找到一種方法來修剪方法中的垃圾數據。

編輯:沒有,沒有辦法關聯執行時間和CPU使用情況,這要歸功於java JIT和它自動使用垃圾回收器的事實。