2012-10-29 44 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,并且分析器正在尝试处理数千个类,可能包括在运行时动态生成的类(不好)。