无需修改代码或重启即可在线诊断运行中 Java 应用的诊断工具。
LinShunKang/MyPerf4J
基于 JavaAgent 的高性能 Java 性能监控工具,无需修改应用代码即可采集方法与 JVM 指标。
- Star
- 3,570
- Fork
- 551
- 未关闭 Issue
- 6
- 最近提交
- 3个月前
这是什么?
MyPerf4J 是一款面向高并发、低延迟应用的 Java 性能监控与统计工具。它通过基于 ASM 字节码增强的 JavaAgent 接入 JVM,无需修改应用代码即可记录方法的响应时间。方法级指标包括 RPS、调用次数、平均值、最小值、最大值、标准差以及 TP50 到 TP100 等分位数,同时提供线程、内存、GC、类加载、JIT 编译和文件描述符等 JVM 指标。
统计粒度最低为 1 秒,且对每次调用进行全量统计而非采样。数据可输出到日志文件,也可通过配置写入 InfluxDB,并配合 Grafana 仪表盘展示。接入方式为配置一个 properties 文件并添加两个 JVM 启动参数;JDK 9 及以上版本需额外添加 --add-opens 参数。项目采用 BSD-3-Clause 许可证,也支持通过 Maven 自行构建。
核心功能
- 01通过 JavaAgent 接入,无需修改应用代码
- 02方法级指标包括 RPS、平均耗时、最大值及 TP50 至 TP100 分位数
- 03JVM 指标覆盖线程、内存、GC、类加载、编译和文件描述符
- 04统计粒度最低 1 秒,全量记录每次调用
- 05结果输出到日志文件,支持对接 InfluxDB 与 Grafana
适用场景
- 在生产负载下定位 Java 微服务中耗时较长的方法
- 长期监控 JVM 内存、GC 与线程行为
- 为 Java 服务搭建 Grafana 性能仪表盘
快速上手
- 1
下载并解压 MyPerf4J-ASM.zip,然后修改 MyPerf4J.properties
- 2
在 JVM 启动参数中添加 Java Agent 和配置文件路径
java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar - 3
启动应用,并在 /path/to/log/method_metrics.log 中查看监控输出
使用前须知
- 接入需要修改配置文件并设置 JVM 启动参数。
- 在 JDK 9 及更高版本上,需要额外添加 --add-opens java.base/java.lang=ALL-UNNAMED 参数。
收录于专题
标签
常见问题
- MyPerf4J 是什么?
- 基于 JavaAgent 的高性能 Java 性能监控工具,无需修改应用代码即可采集方法与 JVM 指标。 MyPerf4J 是一款面向高并发、低延迟应用的 Java 性能监控与统计工具。它通过基于 ASM 字节码增强的 JavaAgent 接入 JVM,无需修改应用代码即可记录方法的响应时间。方法级指标包括 RPS、调用次数、平均值、最小值、最大值、标准差以及 TP50 到 TP100 等分位数,同时提供线程、内存、GC、类加载、JIT 编译和文件描述符等 JVM 指标。
- MyPerf4J 可以免费使用吗?用的什么许可证?
- MyPerf4J 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- MyPerf4J 还在维护吗?
- 半年内有更新。MyPerf4J 最近一次提交是在 2026年7月31日。
- MyPerf4J 适合用来做什么?
- 在生产负载下定位 Java 微服务中耗时较长的方法 长期监控 JVM 内存、GC 与线程行为 为 Java 服务搭建 Grafana 性能仪表盘
- MyPerf4J 怎么安装和运行?
- 下载并解压 MyPerf4J-ASM.zip,然后修改 MyPerf4J.properties 在 JVM 启动参数中添加 Java Agent 和配置文件路径: java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar 启动应用,并在 /path/to/log/method_metrics.log 中查看监控输出
- 在哪里获取 MyPerf4J?
- 源代码和安装说明在 GitHub 上:https://github.com/LinShunKang/MyPerf4J
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个免费的 Java 代码覆盖率库,用于统计测试实际执行了哪些字节码。
Datadog 官方 Go 客户端库,提供 APM 链路追踪、持续性能剖析和应用安全监控。
一个基于 JVM 的沙箱容器,可在不重启、不侵入目标应用的情况下进行运行期 AOP 增强。
低开销的 Java 采样性能分析器,可采集 CPU、内存分配、锁竞争和本地内存等剖析数据。
基于 eBPF 与 Wasm 的零代码可观测性平台,为云原生和 AI 应用采集指标、链路追踪、请求日志与性能剖析数据。