【问题标题】:how to profile application startup with visualvm如何使用 visualvm 分析应用程序启动
【发布时间】:2011-05-25 00:09:54
【问题描述】:

据我所知,you can only profile a running application using VisualVM

有人知道使用 VisualVM 分析 Java 应用程序的启动和启动的方法吗?

我相信一定有办法,否则将是一个重大的疏忽。

希望我只是误读了文档。

谢谢,p.

【问题讨论】:

    标签: java profiling visualvm


    【解决方案1】:

    我发现Startup Profiler 很有帮助:

    VisualVM 1.3.6 的启动分析器插件启用检测 从启动时对本地 Java 5+ 应用程序进行分析。也是 在分析短期运行的进程时很有帮助。

    【讨论】:

    • 这最终对我有用,但请确保您下载了单独的 VisualVM 应用程序,并且不要尝试重用 JDK 附带的应用程序;由于某种原因,Startup Profiler 插件不适用于库存 JDK 版本。
    【解决方案2】:

    使用eclipse启动器,在main方法的适当位置设置断点。

    然后,在调试模式下启动,在 visualVM 中启用分析,然后继续使用 eclipse。

    这不会分析类加载和其他内容,但对我来说已经足够了。

    【讨论】:

      【解决方案3】:

      两种常见的 Java 开发环境 (NetBeans/Eclipse) 都支持直接使用附加的 VisualVM 执行应用程序。如果是 Eclipse,您必须安装 plugin。对于 NetBeans,支持已集成 AFAIK。
      即使没有源,您仍然可以通过这两种环境运行 JAR 文件,从而启动与 VisualVM 连接的应用程序。

      【讨论】:

      • eclipse 插件对此没有帮助。它只是在您启动进程时启动 VVM。
      【解决方案4】:

      您是否使用 `-Xrunjdwp" 命令行选项设置分析?如果是这样,该选项有一个 "suspend" parameter 用于此目的:

      如果在加载主类之前立即挂起目标 VM,则为真;否则为假。

      我自己的配置示例:

      -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
      

      我将它与 YourKit profiler 一起使用,但我认为原理是相同的。

      【讨论】:

      • 我没有使用 Xrunjdwp 选项,应该是吗?暂停的默认值是“真”,对吗?
      • @pstanton:我不太确定Xrunjdwp 的具体内容。我建议阅读它,看看你是否可以使用它。
      • @pstanton:您最终使用的确切 -Xrunjdwp 命令是什么?当我尝试将它与 VisualVM 一起使用时,VisualVM 不再能够正确连接到 JVM 进程。
      • 对不起吉姆,我放弃了。我实际上写了一些代码,以便我的程序暂停,直到单击一个按钮..在我附加分析器后我会单击它;)
      • 但是,其他地方的答案声称-Xrunjdwp 没有帮助。见stackoverflow.com/questions/7096121/…
      猜你喜欢
      • 2013-12-29
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多