用于cpu profiling的过滤类是否适用于Java VisualVM?

Dav*_*Far 6 java profiler profiling visualvm jvisualvm

我想在Java VisualVm(版本1.7.0 b110325)中过滤哪些类是cpu-profiled.为此,我尝试在Profiler - > Settings - > CPU-Settings下将" Profile only classes "设置为我的测试包,这没有任何效果.然后我尝试通过在" 不要分析类 "中设置它们来摆脱所有java.*和sun.*类,这些也没有效果.

这只是一个错误吗?或者我错过了什么?有解决方法吗?我的意思是:

我想这样做主要是为了获得每个方法消耗的CPU的正确百分比.为此,我需要摆脱烦人的测量,例如sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()(约70%).很多用户似乎都有这个问题,例如

JB-*_*JB- 10

sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()在配置文件中看到的原因是您选择了Profile new Runnables选项.

此外,如果您拍摄了性能分析会话的快照,您将能够看到任何热点方法的整个callstack - 这样您就可以从run()方法导航到您自己的应用程序逻辑方法,过滤掉Profile新生成的噪声Runnables选项.

  • 请注意禁用上述选项的后果.启用该选项后,您将自动获得有关所有新启动的线程/可运行的信息.关闭该选项后,您必须确保提供详尽的根方法列表. (2认同)