首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -Xprof输出的解释

Java -Xprof输出的解释
EN

Stack Overflow用户
提问于 2015-08-18 22:22:00
回答 1查看 3.5K关注 0票数 6

我试图解释通过指定-Xprof标志而产生的分析输出。

对于我的应用程序,我得到如下的分析输出:

代码语言:javascript
复制
 Flat profile of 8.34 secs (775 total ticks): main
  Interpreted + native   Method
 10.4%    66  +    12    java.lang.ClassLoader.defineClass1
  3.6%    27  +     0    java.nio.HeapCharBuffer.<init>
  2.5%     1  +    18    java.io.UnixFileSystem.getBooleanAttributes0
...
 74.4%   380  +   179    Total interpreted (including elided)
     Compiled + native   Method
  0.3%     0  +     2    java.util.jar.JarFile$1.hasMoreElements
  0.3%     0  +     2    org.reflections.vfs.ZipDir$1$1.computeNext
  0.1%     0  +     1    java.lang.Object.<init>
...
  1.7%     3  +    10    Total compiled
         Stub + native   Method
  7.5%     0  +    56    java.util.zip.ZipFile.getEntry
  4.7%     0  +    35    java.lang.Object.getClass
  3.2%     0  +    24    java.lang.System.arraycopy
...
 23.2%     0  +   174    Total stub
  Thread-local ticks:
  3.1%    24             Blocked (of total)
  0.7%     5             Class loader

每根线。我的问题是,InterpretedCompiledStub方法之间有什么区别,Thread-local ticks是什么,+ native列的含义是什么?是否有-Xprof分析器的规范文档?谷歌Xprof收效甚微。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-19 06:26:58

我在像XProf这样的工具上唯一发现信息的地方是一些(稍老一点的)基于纸张的Java书籍。

  • 解释器+本机:此图显示了JVM在执行解释方法时使用的刻度。额外的(+本机)列显示了这些解释方法调用的本机C方法。
  • 编译+本机:此图显示了JIT编译器已经解析的方法所使用的刻度。运行程序一段时间后,解释部分中的大部分主要使用者应该显示为“已编译”,因为JIT将对其进行编译。
  • Stubs +本机:此图用于JNI调用。这很可能只使用“本机”列,因为JNI当然是作为一系列本机调用执行的。
  • 线程-本地代码():它被列为“杂项”其他条目,并且是在某个地方编写的,“从性能优化的角度来看不应该引起关注”。我不确定我们有多想相信这一点,但正如您前面所述,XProf确实不是一个文档化的工具。
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32083547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档