代码剖析工具Java Interactive Profiler (JIP)

96
果酱呐
2017.07.22 13:01* 字数 490

JIP是一个100%纯java语言编写的一个代码剖析工具。它的特点包括:
1.交互性,允许你在JVM运行过程中随时启动或结束剖析器而hprof是在程序启动时就开启JVM退出时结束。
2.没有本地代码,大部分剖析器都有一些本地组件(native component)因为这些剖析器使用了需要利用本地组件的JVMPI (Java Virtual Machine Profiling Interface),而JIP是纯Java的,它利用了Java5的一些特性。JIP对需要剖析的每一个类的每一个方法添加aspect拦截,这些aspect能够捕获执行数据。
3.非常低的开销,在很多情况下hprof将会造成一个程序运行变慢20倍,而JIP是轻量级的几乎没有任何开销。
4.JIP能够通过package/class名设置过滤器

************重要配置************

  1. 部署监控
    catalina.sh 文件
    JAVA_OPTS="$JAVA_OPTS -javaagent:/jip-src-1.2/profile/profile.jar -Dprofile.properties=/jip-src-1.2/profile/profile.properties "

              JAVA_OPTS="$JAVA_OPTS -XX:-UseSplitVerifier  -javaagent:/jip-src-1.2/profile/profile.jar  -Dprofile.properties=/jip-src-1.2/profile/profile.properties " 
    
    
                ./file.sh localhost 15519  /jip-src-1.2/client/test-profile2.txt 
               ./start.sh localhost 15519  
              ./finish.sh localhost 15519 
    

默认端口:15599 <profile.properties>

<profile.properties>
调用层次的深度 : thread-depth=-1(-1 means no limit)
层次图中输出方法的个数:
max-method-count=compact(method.compact.threshold.ms=10)
排除列表: exclude=com.mentorgen.tools.profile
ClassLoaderFilter.x
ClassLoaderFilter.1=com.mentorgen.tools.profile.instrument.clfilter.WebAppClassLoaderFilter
ClassLoaderFilter.2=com.mentorgen.tools.profile.instrument.clfilter.StandardClassLoaderFilter<默认>

************报告展示************

调用次数|总时间|净耗时|总的百分比|净百分比

报告展示1

汇总信息,按调用方法耗时多少倒序排列

报告展示2

************优点************
a.开源
b.轻量级
c.交互式
d.100%纯java
e.从监控中过滤掉不关心的类或者包
f.可集成
************缺点************
a.后续版本无更新
b.资料相对比较少

性能测试