如何使用java堆分析器(HPROF)

时间:2015-02-02 17:35:07

标签: java hprof

凭借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以获取分析信息吗?

1 个答案:

答案 0 :(得分:2)

您只需删除课程末尾的.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