2011-08-25 20 views
2

我正在嘗試使用jvisualvm分析應用程序。該應用程序由一個循環組成,其中從數據庫加載數據,然後對數據執行一些複雜的計算。當一組數據被處理時,下一組被加載和計算。jvisualvm不排除某些方法從CPU分析

當我開始我的應用程序並附加jvisualvm時,我在CPU分析頁面上設置了一個過濾器(「Sart profiling from classes」和「Do not profile classes」),因爲我對任何涉及數據庫訪問和其他輸入/輸出相關的東西。

過濾器工作 - 差不多。我的問題是,儘管sun。*被輸入到「不配置文件類」過濾器中,但大部分時間的配置文件報告都花費在sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()之上。這是sun中唯一的方法。*出現在我的分析結果中。

有沒有人看過這個之前知道如何擺脫它?問題是,所有其他方法在「自我時間」列中只顯示少量(< 1%),大多數方法顯示爲0%。

使用的jvisualvm版本是1.3.2。

由於提前, 阿克塞爾

+0

不要看「自我時間」。 [這實際上沒有意義。](http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343) –

+0

有趣的鏈接,但考慮到只顯示的列是「自我時間」,「自我時間[%]「和」Invocations「,沒有太多可以看的...... :-) – Axel

+0

必須有一種方法來獲得包容性的時間。它可能被稱爲「累計」或「總計」時間。 –

回答

1

聽起來像大多數的時間都花在從數據庫中等待。如果要分析的剩下的東西,你可以

  • 存根的數據庫,以便快速返回(從而使你的代碼的其餘部分佔據了大部分的時間),或
  • 使用更好例如YourKit或JProfiler(支付,絕對支持你想要的)或TPTP(免費,但我不知道它有多強大)
+0

那麼我會與你的第一個建議去。我以前使用過TPTP,但它不再可用。如果沒有任何幫助,我想我將不得不保留一個單獨的Helios安裝進行分析。 – Axel

+0

[YourKit](http://www.yourkit.com/)的付款方式正確,但已有〜2周的試用期。我用它的試驗來描述一個緊迫的問題 - 在那之後,我非常樂意獲得付費版本。 – gnat

0

取消選中CPU概要分析頁面上的'Profile new Runnables'。 要用「自我時間」回答您的其他問題 - 您需要獲取配置數據的CPU snapshot。快照包含總方法時間信息。