MyPerf4JJava 方法性能監(jiān)控和統(tǒng)計工具
MyPerf4J是什么?
一個針對高并發(fā)、低延遲應(yīng)用設(shè)計的高性能、無侵入的Java方法性能監(jiān)控和統(tǒng)計工具。
受 [perf4j](https://github.com/perf4j/perf4j) 和 [TProfiler](https://github.com/alibaba/TProfiler)啟發(fā)而來。
MyPerf4J具有以下幾個特性:
* 無侵入: 采用JavaAgent方式,對應(yīng)用程序完全無侵入,無需修改應(yīng)用代碼
* 高性能: 性能消耗非常小,每次統(tǒng)計只花費73ns,可以在生產(chǎn)環(huán)境長期使用
* 低內(nèi)存: 采用內(nèi)存復(fù)用的方式,整個生命周期只產(chǎn)生極少的臨時對象,不影響應(yīng)用程序的GC
* 高精度: 采用納秒來計算響應(yīng)時間
* 高實時: 支持秒級監(jiān)控,最低1s!
MyPerf4J能做什么?
MyPerf4J可以統(tǒng)計以下幾個性能指標:
RPS: 每秒請求數(shù)
Count: 總請求數(shù)
RT: 方法響應(yīng)時間
TP: Top百分數(shù)(Top Percentile)
TP90: 在一個時間段內(nèi)(如1分鐘),統(tǒng)計該方法每次調(diào)用所消耗的時間,并將這些時間按從小到大的順序進行排序,取第90%的那個值作為TP90值;
Avg: 方法平均響應(yīng)時間
Min: 方法最小響應(yīng)時間
Max: 方法最大響應(yīng)時間
StdDev: 方法響應(yīng)時間的標準差
TP50, TP90, TP95, TP99, TP999, TP9999, TP99999, TP100
可視化性能指標
目前MyPerf4J已提供[Grafana Dashboard](https://grafana.com/dashboards/6991)進行數(shù)據(jù)展示
