【问题标题】:How to use java heap profilers (HPROF)如何使用 Java 堆分析器 (HPROF)
【发布时间】:2015-02-02 17:35:07
【问题描述】:

借助 java 'hprof' 的基本知识,我尝试按照 oracle docs 执行以下命令

java -agentlib:hprof Hello.class

但我得到以下错误而不是分析信息

Caused by: java.lang.ClassNotFoundException: Hello.class
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

有人可以说明如何正确使用 hprof 以获得分析信息吗?

【问题讨论】:

    标签: java hprof


    【解决方案1】:

    您只需删除类末尾的.class,因为Java 默认会搜索class 文件。

    java -agentlib:hprof Hello
    

    但是,要获得堆分配配置文件,您需要添加一些参数...

    java -agentlib:hprof=heap=sites Hello
    

    更多信息类型

    java -agentlib:hprof=help
    

    并访问http://docs.oracle.com/javase/8/docs/technotes/samples/hprof.html

    【讨论】:

    • 我尝试为位于其他文件夹中的类运行该命令。我收到相同的异常以及消息“找不到主类”。知道如何解决这个问题吗?
    • @aarish 在运行java 程序时,您只能调用主文件(包含main 方法的文件)。这就是您收到此错误的原因。
    • java程序包含main方法
    • @aarish 然后确保你输入正确并且主要方法声明是public static void main(String args[])
    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2017-11-19
    • 2019-07-01
    • 2017-01-25
    • 1970-01-01
    相关资源
    最近更新 更多