CPU UsageTimes Profile (cpu=times)

时间:2023-03-08 22:15:47
HPROF工具能搜集CPU使用信息通过注入代码到每个方法进入点和退出点.因此能够统计方法真实调用次数和花费的时间.
它使用BCI(Byte Code Injection),所以比cpu=samples慢.下面是样例输出
$ javac -J-agentlib:hprof=cpu=times Hello.java
CPU TIME (ms) BEGIN (total = ) Wed oct ::
rank self accum count trace method
3.70% 3.70% com.sun.tools.javac.Main.compile
3.64% 7.34% com.sun.tools.javac.main.Main.compile
3.64% 10.97% com.sun.tools.javac.main.Main.compile
3.11% 14.08% com.sun.tools.javac.main.JavaCompiler.compile
2.54% 16.62% com.sun.tools.javac.jvm.ClassReader.listAll
2.53% 19.15% com.sun.tools.javac.jvm.ClassReader.list
2.03% 21.18% com.sun.tools.javac.comp.Enter.main
2.03% 23.21% com.sun.tools.javac.comp.Enter.complete
1.68% 24.90% com.sun.tools.javac.comp.Enter.classEnter
1.68% 26.58% com.sun.tools.javac.comp.Enter.classEnter
...
CPU TIME (ms) END
count列代表方法真实的进入次数,百分比表示线程调用这些方法花费的CPU时间.