基于JDK-6,使用的类不同,展示的信息可能不同,内容一样的
javac -J-agentlib:hprof=heap=sites Hello.java
percent live alloc’ed stack class
rank self     accum     bytes     objs     bytes     objs     trace name
1     44.13%     44.13% 1117360     13967     1117360 13967     301926 java.util.zip.ZipEntry
2     8.83%     52.95% 223472     13967     223472     13967     301927 com.sun.tools.javac.util.List
3     5.18%     58.13% 131088     1         131088     1         300996 byte[]
4     5.18%     63.31% 131088     1         131088     1         300995 com.sun.tools.javac.util.Name[]
上面显示的一个重要的信息是,总空间44.13%分配给了java.util.zip.ZipEntry objects.
看trace为301926的信息
TRACE 301926:
    java.util.zip.ZipEntry.<init>(ZipEntry.java:101)
    java.util.zip.ZipFile+3.nextElement(ZipFile.java:417)
    com.sun.tools.javac.jvm.ClassReader.openArchive(ClassReader.java:1374)
    com.sun.tools.javac.jvm.ClassReader.list(ClassReader.java:1631)
TRACE 301927:
    com.sun.tools.javac.util.List.<init>(List.java:42)
    com.sun.tools.javac.util.List.<init>(List.java:50)
    com.sun.tools.javac.util.ListBuffer.append(ListBuffer.java:94)
    com.sun.tools.javac.jvm.ClassReader.openArchive(ClassReader.java:1374)
TRACE 300996:
    com.sun.tools.javac.util.Name$Table.<init>(Name.java:379)
    com.sun.tools.javac.util.Name$Table.<init>(Name.java:481)
    com.sun.tools.javac.util.Name$Table.make(Name.java:332)
    com.sun.tools.javac.util.Name$Table.instance(Name.java:349)
TRACE 300995:
    com.sun.tools.javac.util.Name$Table.<init>(Name.java:378)
    com.sun.tools.javac.util.Name$Table.<init>(Name.java:481)
    com.sun.tools.javac.util.Name$Table.make(Name.java:332)
    com.sun.tools.javac.util.Name$Table.instance(Name.java:349)
每一个栈帧信息包含类名字,方法名字,源文件名,行编号.可以通过设置HPROF agent里面的栈帧深度来控制最大帧数.
默认是4.栈帧不仅仅指示指示出执行空间开辟的方法,同样也指出负责内容开辟的方法.