一个极快的Java接口性能监控和统计工具。受 perf4j 和 TProfiler 启发而来。 致力于成为可在生产环境长时间使用的性能监控和统计工具!
配置说明
测试方法
System.gc();
MyPerf4J-ASM
线程数 | 每线程循环数 | RPS |
---|---|---|
1 | 1000000000 | 13815816 |
2 | 1000000000 | 16199712 |
4 | 1000000000 | 33060632 |
8 | 1000000000 | 55981416 |
压测结论
System.gc();
)!!! 在JVM启动参数里加上: -javaagent:/your/path/to/MyPerf4J-ASM-${MyPerf4J-version}.jar
在JVM启动参数里加上:-DMyPerf4JPropFile=/your/path/to/myPerf4J.properties,并在 /your/path/to/myPerf4J.properties
中加入以下几个配置项:
#配置Record模式,可配置为accurate/rough RecorderMode=accurate #配置时间片,单位为ms,最小30s,最大600s MillTimeSlice=10000 #需要监控的package,可配置多个,用英文';'分隔 IncludePackages=cn.perf4j.demo #不需要监控的package,可配置多个,用英文';'分隔 ExcludePackages=org.spring; #可配置多个方法名,用英文';'分隔 ExcludeMethods=equals;hash #是否排除私有方法,true/false ExcludePrivateMethod=true #通用的方法执行时间阈值,单位为ms ProfilingTimeThreshold=1000 #在一个时间片内,超过方法执行时间阈值的次数,仅在RecorderMode=accurate时有效 ProfilingOutThresholdCount=10
执行命令 mvn clean package
运行你的程序
输出结果
MyPerf4J Performance Statistics [2018-06-22 20:37:30, 2018-06-22 20:38:00] Api[2/3] RPS Avg(ms) Min(ms) Max(ms) StdDev Count TP50 TP90 TP95 TP99 TP999 TP9999 TP99999 TP100 UserServiceImpl.getId1 90 4.31 4 8 0.08 2793 4 5 6 8 8 8 8 8 UserServiceImpl.getId2 90 0.00 0 0 0.00 2793 0 0 0 0 0 0 0 0