1

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

4

1 回答 1

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

于 2015-02-02T17:41:56.753 回答