1、作用
使用 arthas 可以进行如下操作
① 抓取对应函数的耗时结构,然后分析对应的代码优化代码
② 抓取对应函数的 入参、出参函数
③ 重放对应的函数执行
④ 查询对应程序占用结构,比如 cpu, jvm
⑤ 查询对应的 执行最频繁的 线程
⑥ 打印函数的执行路径
2、如何执行
下载 arthas : https://github.com/alibaba/arthas
运行(在对应的arthas-bin 文件目录下执行): java -jar arthas-boot.jar
选择对应的 项目的id 即可
2、 基本命令
这里可以对idea 安装对应的插件, arthas idea 。 重启idea 之后
选择对应的函数之后,右击选择 函数 arthas command ,即可选择对应的命令
1、trace 命令
作用: 排查对应的函数耗时
trace com.example.demo_own.controller.TestController testSecond -n 5 --skipJDKMethod false
这里 -n 表示监听五次后退出, --skipJDKMethod false 表示忽略对应的jdk 函数操作耗时打印
2、 watch
作用: 查看对应函数的入参,出参,以及异常信息
watch com.example.demo_own.controller.TestController testSecond '{params,returnObj,throwExp}' -n 5 -x 3
这里 -n 5 表示执行5次后退出, -x 3 表示打印对应的层级为 3层
3、monitor
作用: 查看对应的函数的执行成功次数,失败次数,总次数。
monitor com.example.demo_own.controller.TestController testSecond -n 10 --cycle 10
对应的代码执行逻辑是 随机生成了一个 0-1 之间的随机数,然后与0.5 进行判断大小,如果小于0.5 就 抛出对应的异常。
执行结果:
其中 -n 表示对应的打印次数, --cycle 10 表示每10秒打印一次 。
4、dashboard
作用: 打印对应的面板数据
5、stack
作用:
stack com.example.demo_own.controller.TestController testSecond -n 5
6、 tt
作用: 重放对应的参数 以执行函数
(就是说有时候我记录对应的参数,然后重新以这些参数执行并对应的函数)
tt -t com.example.demo_own.controller.TestController testSecond -n 5
(记录对应的函数的 5次参数)
执行结果:
使用: 重放对应索引为 1000的参数值
开发中使用这些命令基本上就够了
3、操作命令
在 每个命令执行结束后 通过 q 来进行退出