Arthas官方文档: https://arthas.aliyun.com/doc/commands.html Arthas是一款jvm调控工具,这几天尝试使用了一下,发现有些指令很好用,决定拿出来记录一下。
本地安装启动
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
进入可以看到我们选择了想要看的线程之后,进入了Arthas的控制台。关于memory,dashboard 等指令此处不赘述,具体指令信息可以查看官方文档或者输入help指令查看。这边简单介绍两个:
help:
heapdump
官方文档: 这边给大家介绍两种输出的hprof文件打开方法 一、使用jhat指定一个端口号,等到server is ready的时候,打开localhost:端口,就会将类等信息表现为以下界面。 拉到最底下
All classes including platform 显示所有创建堆中对象的类
Show all members of the rootset 显示rootset能引用到的所有对象
Show instance counts for all classes (including platform) 显示所有类(包括JDK中定义的Java类)的实例数量
Show instance counts for all classes (excluding platform) 显示所有类(不包括JDK中定 义的Java类)的实例数量
Show heap histogram 显示堆内对象直方图
Show finalizer summary 显示等待回收的对象信息
Execute Object Query Language (OQL) query 执行对象查询语句
比如上图,我在查询长度不为0的字符串
二、在Java jdk bin目录下,有jvisualvm.exe,点开这个,我们同样可以通过这个工具查看我们的 .hprof 文件。
idea 插件
安装好插件后,在方法上右击,会出现如下弹窗,点击右边的watch,trace等会提示命令已经复制到粘贴板, 此刻打开我们的arthas控制台,粘贴命令,举个例子,trace可以监控我们每行代码执行时间,出现如下指令,其中-n 5表示会监控五次。 这个时候只要调用方法就可以看到输出结果,如图,左边是执行时间,最右边是行数,中间是执行的方法。
更多详细信息参考官网。
|