一个针对高并发、低延迟应用设计的高性能、无侵入的Java方法性能监控和统计工具。 受 perf4j 和 TProfiler启发而来。
MyPerf4J具有以下几个特性: 无侵入: 采用JavaAgent方式,对应用程序完全无侵入,无需修改应用代码 高性能: 性能消耗非常小,每次统计只花费73ns,可以在生产环境长期使用 低内存: 采用内存复用的方式,整个生命周期只产生极少的临时对象,不影响应用程序的GC 高精度: 采用纳秒来计算响应时间 * 高实时: 支持秒级监控,最低1s!
MyPerf4J可以统计以下几个性能指标:
RPS: 每秒请求数
Count: 总请求数
RT: 方法响应时间
TP: Top百分数(Top Percentile)
TP90: 在一个时间段内(如1分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第90%的那个值作为TP90值;
Avg: 方法平均响应时间
Min: 方法最小响应时间
Max: 方法最大响应时间
StdDev: 方法响应时间的标准差
TP50, TP90, TP95, TP99, TP999, TP9999, TP99999, TP100
目前MyPerf4J已提供Grafana Dashboard进行数据展示