- 安装 Arthas
根据操作系统,从Arthas 官方 GitHub 仓库下载相应的 Arthas 安装包。
- 执行 Arthas
打开命令行工具,进入 Arthas 安装目录并执行以下命令:
java -jar arthas-boot.jar
在启动时,Arthas 会自动检测到本机上所有运行的 Java 进程。输入序号选择你想要分析的 Java 进程。
- 分析 Java 项目并生成火焰图
使用以下 Arthas 命令启动性能分析:
profiler start
分析持续一段时间,可以通过以下命令停止分析:
profiler stop
停止分析后,使用以下命令生成火焰图:
profiler report
如果你希望直接在浏览器中查看火焰图,可以通过以下命令:
profiler view
此命令会自动打开默认浏览器,并展示火焰图。
- 结束 Arthas
完成性能分析和生成火焰图后,通过以下命令退出 Arthas:
stop
注意事项:
请注意,火焰图仅提供性能问题的概览,并不能准确地定位问题。但它是一个非常有用的工具,可以帮助你发现整体性能瓶颈。如需进行更深入的性能分析,请结合其他 Arthas 命令和相关工具,开展更详尽的性能调试。
生成特定方法的火焰图
要生成特定方法的火焰图,可以使用 Arthas 的 watch 命令与 profiler 命令结合。以下是该过程的详细步骤:
- 启动 Arthas 并连接到目标进程
按照上述教程中的步骤,启动 Arthas 并连接到要分析的 Java 进程。
- 使用 watch 命令监控特定方法
watch 命令的语法如下:
watch [class-pattern] [method-pattern] [express] [condition-express] -[options]
‘class-pattern’ 是要监控的类名或类名模式,‘method-pattern’ 是要监控的方法名或方法名模式。
例如, 监控 com.example.service.UserService 类的 getUser 方法:
watch com.example.service.UserService getUser {*} -x 2
- 使用 profiler 命令分析性能
启动性能分析:
profiler start
分析一段时间后,停止分析:
profiler stop
- 生成指定方法的火焰图
生成火焰图并导出为 HTML 文件:
profiler report --format html
执行完成后,Arthas 会告诉你火焰图的导出位置。此外,–format 参数可以设置输出格式。例如,可以将其设置为 “text” 来以文本形式显示火焰图。
- 结束 Arthas
分析完成后,通过以下命令退出 Arthas:
stop
通过这些步骤,你可以生成指定方法及其调用链的火焰图。但请注意,火焰图主要适用于宏观层面的性能分析,而对于微观层面和详细调查,还需要结合其他 Arthas 功能来进行。