2012-10-29 87 views
9

我有一個運行在Jetty上的wicket + spring + hibernate應用程序。當我開始用CPU VisualVM的(JDK 1.7.0_9)幾分鐘,它首先攤位控制檯打印剖析它:visualvm剖析碼是超級慢

Profiler Agent: 250 classes cached. 
Profiler Agent: 250 classes cached. 

這些線被重複約20次,然後VisualVM的說,它已經開始instumentation和周圍8000儀器方法。

現在,在這之後我點擊我的web應用程序中的按鈕,並再次申請完全幾分鐘掛起,而控制檯打印出來線,如:

Profiler Agent: Redefining 100 classes at idx 100, out of total 336 

在此之後,我得到分析結果,但他們是漂亮沒用差不多99.6%的時間花費在

sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run() 

這使得VisualVM完全不可用。任何猜測可能是這裏的罪魁禍首?

我跑碼頭8.1.2.v20120308

回答

6

答案是縮小正在進行檢測的類的範圍。

單擊探查器中的設置選項,並查看「不要剖析類」或「僅剖面類」。一定要排除你不想檢查的第三方庫。例如,我在我的應用程序中使用Jython,並且分析器正在嘗試處理數千個類,可能包括在運行時動態生成的類(不好)。