java - Eclipse:Java 监视器不会显示 cpu 统计信息

标签 java eclipse jvisualvm

我正在使用 jvisualvm 分析 Java 应用程序。 jvisualvm 的 CPU 配置文件已将代码的缓慢部分缩小到一种特定方法。但它没有说明该方法的哪一部分很慢。

为了获取更多信息,我尝试使用 Java Monitor(可通过 Eclipse Marketplace 获得)通过 Eclipse 进行调试。 Java Monitor 将附加到应用程序,但不会显示 CPU 统计信息。我不知道为什么。我已经使用以下方法修改了 JVM 选项:

-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y

然后我使用以下方法在 Eclipse 中创建配置文件:

Remote Java Application > myapplication

在这里,我选择了我正在分析的项目的源代码。我启动应用程序并等待调试器附加:

Listening for transport dt_socket at address: 8000

我右键单击本地主机下的PID,然后单击“开始监控”

然后在 Eclipse 中按 F11 启动应用程序。它开始运行,但在“属性”下我得到了除 CPU 之外的所有内容。任何想法都非常感谢..

最佳答案

我不知道有哪个 Java 分析器可以告诉您方法的哪一部分大部分时间都在消耗。如果您无法通过查看方法来判断,那么您的方法可能太大而无法理解。尝试将其重构为多种方法。

如果您有大量局部变量,请使用工作对象并将局部变量转换为工作人员的字段。这样,您就可以避免编写具有十几个参数的方法,并且仍然可以缩减过于复杂的方法的大小。

至于为什么Java Monitor不做你想做的事:你需要告诉它要监视哪些包以及要使用哪种分析方法。 See the documentation了解详情。

关于java - Eclipse:Java 监视器不会显示 cpu 统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29743071/

相关文章:

java - 通过子类引用变量访问父类(super class)​​对象

java - 密码解密/加密更改结果

java - JSP Tomcat7 静态 css 和 js 文件未加载

eclipse - 在IntelliJ IDEA中运行jar配置

java - VisualVM CPU 分析是否适用于 Mac?

java - Apache Struts 项目中未使用的文件

javascript - JSDoc - 如何检查 JavaScript 的类型

java swing组件无法解析

java - "Not supported for this JVM"尝试连接到 VisualVM 上的远程主机时

java - 需要在 VMWare 下在 Windows 上运行 VisualVM 的帮助