java - 在 VisualVM 中分析整个 Java 程序的执行

标签 java profile visualvm

在 Java 分析中,现在似乎所有(免费)道路都通向 JDK6 中包含的 VisualVM 分析器。它看起来像一个很好的程序,每个人都吹捧如何将“附加到正在运行的进程”作为主要功能。问题是,这似乎是在本地进程上使用它的唯一方法。我希望能够在分析器中启动我的程序,并跟踪其整个执行过程

我尝试使用 how to profile application startup with visualvm 中描述的 -Xrunjdwp 选项,但是在两种传输方法(共享内存和服务器)之间,对我来说都没有用。 VisualVM似乎与前者没有任何集成,VisualVM拒绝连接到localhost127.0.0.1,所以后者也不好。我还尝试将 System.in 的简单读取插入到我的程序中以插入执行暂停,但在这种情况下,VisualVM 会阻塞直到读取完成,并且直到之后才允许您开始分析正在执行中。 我也试过调查 the Eclipse plugin但是该网站充满了死链接,当我尝试使用它时,启动器只是崩溃并出现 NullPointerException(这可能不再准确)。

来自 C 语言,这对我来说似乎不是一项特别困难的任务。我只是错过了什么还是这真的是一个不可能的要求?我愿意接受任何类型的建议,包括使用不同的(也是免费的)分析器,而且我不反对命令行。

最佳答案

考虑使用 HPROF并使用 HPjmeter 之类的工具打开数据文件- 或者只是在您喜欢的编辑器中阅读生成的文本文件。

Command used: javac -J-agentlib:hprof=heap=sites Hello.java

SITES BEGIN (ordered by live bytes) Fri Oct 22 11:52:24 2004
          percent          live          alloc'ed  stack class  rank   self  accum     bytes objs     bytes  objs trace name
    1 44.73% 44.73%   1161280 14516  1161280 14516 302032 java.util.zip.ZipEntry
    2  8.95% 53.67%    232256 14516   232256 14516 302033 com.sun.tools.javac.util.List
    3  5.06% 58.74%    131504    2    131504     2 301029 com.sun.tools.javac.util.Name[]
    4  5.05% 63.79%    131088    1    131088     1 301030 byte[]
    5  5.05% 68.84%    131072    1    131072     1 301710 byte[]

HPROF is capable of presenting CPU usage, heap allocation statistics, and monitor contention profiles. In addition, it can also report complete heap dumps and states of all the monitors and threads in the Java virtual machine.

关于java - 在 VisualVM 中分析整个 Java 程序的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7096121/

相关文章:

java - GridBagLayout 中的 JPanel 不保持比例(weightx)

使用配置文件类优化 Python 代码

android - 在特定时间调用 android 手机配置文件模式

javafx - JavaFX 应用程序的 VisualVM 分析

java - 在 Java 中使用 Executor 编写文件

java - 检查在 MySQL 中插入时数据库中是否存在给定的用户名

java - 使用 Util 类避免测试级别的代码重复

ios - iOS MDM 操作中的证书内容

java - maven/visualvm : how can i use visualvm to profile a running surefire process?

tomcat - Java 运行时环境检测到 VisualVM fatal error - 关于日志文件和错误的问题