java - 用于 cpu 分析的过滤类在 Java VisualVM 中是否有效?

标签 java profiling profiler visualvm jvisualvm

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

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

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

最佳答案

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

此外,如果您拍摄分析 session 的快照,您将能够看到任何热点方法的整个调用堆栈 - 这样您就可以从 run() 方法向下导航到您自己的方法应用程序逻辑方法,过滤掉 Profile new Runnables 选项产生的噪音。

关于java - 用于 cpu 分析的过滤类在 Java VisualVM 中是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205612/

相关文章:

java - 将java代码反转为UML符号?

Java 套接字/服务器编程 : Socket is not connected

c - 测量特定函数的最大和最小执行时间

performance - go 应用程序的 pprof CPU 配置文件不显示任何示例

javascript - 如何使用 Firebug 或任何其他方式查找/分析正在执行 "right now"的 JavaScript?

python - python2.7有内存分析器吗?

java - Arquillian和Flyway使用不同版本的H2内存

profiling - 收集有关 Cray Chapel 中 GASNet 通信操作的信息

xml - Perl 探查器中断对 XML 解析器的调用

java - Spring "cacheNames"不适用于 "key"