一、概述
官方文档,这是个中文的,就不多说了。
二、快速使用
快速入门,因为是中文的,都不知道怎么下手。
简述一下我遇到的问题吧,首先进行安装,然后运行,不过这里需要注意一点就是在第一次安装的时候,如果使用如下方式,需要本地先起一个任意的java进程。否则提示Can not find java process异常信息。
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
下图是运行java程序前后的对比,在运行以后会出现一个正在运行的java进程列表,因为实验中只有一个DeadLockDemo 在运行,所以图中只有一个。然后输入列表前的序号,Arthas 就开始了attach操作,因为这是第一次运行,所以在attach前进行了download。下载完成以后再开始attach。
三、常用命令
最有用的命令是 help ,显示了所有的命令和相关介绍,所以其实只要记住这一个命令就行了。
命令 | 描述 |
dashboard | 总览面板 |
thread | 线程信息,比较重要 |
jvm | java虚拟机的信息 |
sysprop | 系统属性信息,也可以对某个属性进行修改 |
vmoption | 虚拟机参数,可以展示可以修改 |
sysenv | 系统环境,只能展示 |
ognl | |
sc | |
jad | 反编译 |
mc | 内存编译,怎么联合编译? |
redefine | 加载外部.class文件到JVM。redefine后原来的类不能恢复,若想恢复,只能重新redefine原始的类。reset对redefine的类无效,redefine和jad/watch/monitor/trace/tt命令冲突,执行完redefine后再执行上述命令,则会把redefine的字节码重置 |
dump | |
classloader | |
monitor | |
watch | |
trace | |
tt |
watch 、trace 、tt 还是不错的,建议大家通过 help 命令查看,不想写了,几个命令用法都大同小异,还有就是OGNL,这个很重要。
三、总结
arthas 我体验了一下,感觉对于我这种对JVM理解不深的菜鸡来说,体感很一般,总之就是不明觉厉。
我觉得要是arthas 可以检测到方法体里面的局部变量的值就好了,或许已经有了,只是我不知道,如果有了解的大佬,麻烦留个言。