arthas使用指北 编辑
备忘录
一. arthas的使用
常用命令
-
jad
-
反编译class类、方法
-
语法
复制
jad -c 类加载器 类的全路径 方法名
-
-
thread
-
操作线程
-
语法
复制
`列举全部的线程`thread`按照CPU使用率列举前5个线程`thread -n 5`根据id查看此线程处于的运行状态,在执行的具体某个方法,方法中的代码行号`thread id`根据关键字查找线程`thread|grep 关键字
-
-
ognl
-
灵活的表达式
-
语法
复制
`输出内部类里面的静态变量``-x 2 表示对象二级展开`ognl "@类名$内部类名@静态变量名" -x 2`执行类中的静态方法,传递参数`ognl "@类名@静态方法(参数)"`查看集合(list/map)中的元素, index指list下标, 'key'指map中的key`ognl "@类名@静态变量[index]"ognl "@类名@静态变量['key']"`使用变量接收list、map、对象、方法的返回值。并输出`ognl "#value1={10,5,8},#value1"ognl "#value2=#{'key1':10, 'key2': 5},#value2"ognl "#value3 = new java.util.Random(10),#value3"ognl "#value4 = new java.util.Random().nextInt(100),#value4"`#this 永远表示当前的对象`ognl "{1,2}.size().(#this > 1 ? #this : 0)" `输出2,#this表示list的size`
-
-
sc、sm
-
查看JVM已经加载的类和方法
-
语法
复制
`-d 表示输出详细`sc 类的全路径名 -dsm 类的全路径名 方法名 -d
-
-
dump
-
保存已加载字节码文件到本地
-
语法
复制
`把demo包下所有的类的字节码文件保存到~/logs/arthas/classdump/目录下`dump demo.*
-
-
mc、redefine
-
mc
编译java
代码为.class
文件 -
redefine
加载外部.class
文件 -
语法
复制
`编译MathGame文件`mc /root/MathGame.java -d /root`把编译后的MathGame文件加载到JVM`redefine /root/MathGame.class
-
-
monitor
-
用来监视一个时间段中指定方法的执行次数,成功次数,失败次数,耗时等这些信息
-
语法
复制
`监视monitor方法,5s更新一次`monitor 类的全路径名 方法名 -c 5监控项 说明 timestamp 时间戳 class Java类 method 方法(构造方法、普通方法) total 调用次数 success 成功次数 fail 失败次数 rt 平均耗时 fail-rate 失败率
-
-
watch
-
观察指定方法的调用情况
-
语法
参数名称 参数说明 class-pattern 类名表达式匹配 method-pattern 方法名表达式匹配 express 观察表达式 condition-express 条件表达式 [b] 在方法调用之前观察 before
[e] 在方法异常之后观察 exception
[s] 在方法返回之后观察 success
[f] 在方法结束之后(正常返回和异常返回)观察 finish
[E] 开启正则表达式匹配,默认为通配符匹配 [x:] 指定输出结果的属性遍历深度,默认为 1 复制
`params表示入参,target表示类中的属性,retuernObj表示出参, 为固定格式,命名也是固定的。可选``-x 2 表示展开2层`watch 类的全路径名 方法名 "{params,target,returnObj}" -x 2 -b -s
-
-
trace
-
对方法内部调用路径进行追踪,并输出方法路径上的每个节点上耗时。
-
语法
复制
`追踪5次结束``#cost > .5 表示时间大于0.5ms的记录, ognl表达式``-E 开启正则匹配,默认是通配符匹配(不适用-E也可以使用 * 去匹配)`trace -E 类的全路径名1|类的全路径名2 方法名A|方法名B -n 5 '#cost > .5'`简易版`trace 类的全路径名 方法名
-
-
stack
-
输出当前方法被调用的调用路径
-
语法
复制
`stack 类的全路径名 方法名 ognl表达式 -n 表示获取的次数, 支持-E使用正则匹配类名方法名`stack -E 类的全路径名1|类的全路径名2 方法名A|方法名B 'params[0]<0' -n 2`简易版`stack 类的全路径名 方法名
-
作者:c21cw
出处:https://www.cnblogs.com/c21w/
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请 .
如果,您希望更容易地发现我的新文章,不妨点击一下绿色通道的【关注我】。
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本