JIP是一個100%純java語言編寫的一個代碼剖析工具遭铺。它的特點包括:
1.交互性,允許你在JVM運行過程中隨時啟動或結束剖析器而hprof是在程序啟動時就開啟JVM退出時結束恢准。
2.沒有本地代碼魂挂,大部分剖析器都有一些本地組件(native component)因為這些剖析器使用了需要利用本地組件的JVMPI (Java Virtual Machine Profiling Interface),而JIP是純Java的顷歌,它利用了Java5的一些特性锰蓬。JIP對需要剖析的每一個類的每一個方法添加aspect攔截,這些aspect能夠捕獲執(zhí)行數(shù)據(jù)眯漩。
3.非常低的開銷,在很多情況下hprof將會造成一個程序運行變慢20倍,而JIP是輕量級的幾乎沒有任何開銷芹扭。
4.JIP能夠通過package/class名設置過濾器
************重要配置************
-
部署監(jiān)控
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>
調(diào)用層次的深度 : thread-depth=-1(-1 means no limit)
層次圖中輸出方法的個數(shù):
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<默認>
************報告展示************
調(diào)用次數(shù)|總時間|凈耗時|總的百分比|凈百分比
匯總信息,按調(diào)用方法耗時多少倒序排列
************優(yōu)點************
a.開源
b.輕量級
c.交互式
d.100%純java
e.從監(jiān)控中過濾掉不關心的類或者包
f.可集成
************缺點************
a.后續(xù)版本無更新
b.資料相對比較少