我想过滤在Java VisualVm(版本1.7.0 b110325)中正在进行cpu配置的类。为此,我尝试在Profiler - > Settings - > CPU-Settings中将“Profile only classes”设置为我的测试包,但没有任何效果。然后,我试图通过将它们设置为“不要剖析类”来尝试摆脱所有java。*和sun。*类,它们也没有效果。在Java VisualVM中过滤用于cpu分析工作的类吗?
这是一个简单的错误?或者我错过了什么?有没有解决方法?我的意思是除了:
- 美好探查
- 做手工取样支付(见One could use a profiler, but why not just halt the program?)
- 切换到调用树认为,这是因为只有探查视图没有好给我的百分比每种方法消耗的CPU数量。
我想这样做主要是为了获得每种方法消耗CPU的正确百分比。为此,我需要摆脱烦人的测量,例如为sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
(约70%)。许多用户似乎都有这个问题,请参阅
- Java VisualVM giving bizarre results for CPU profiling - Has anyone else run into this?
- rmi.transport.tcp.tcptransport Connectionhandler consumes much CPU
- Can't see my own application methods in Java VisualVM。
是你的目的是让尽可能跑得快尽可能的代码?或只是为了得到一些百分比,而不管它们是什么意思?常用的“时间”非常含糊。 –
是的,我的主要目标是让代码更快运行。我也想估计一下代码应该改变多少。所以我想对所有热点及其严重程度进行粗略概述。我认为VisualVm的结果是可以接受的,尽管使用了时间间隔 - 如果只有那些少数sun和java。*类不会搞乱所有的统计数据。 – DaveFar