文章插图
?「8、观察当前对象中的全局属性」
#cost>200(单位是ms)表示只有当耗时大于200ms时才会输出,过滤掉执行时间小于200ms的调用
?
$ watch com.liusy.arthas_demo.controller.ArthasController test 'target'
文章插图
如果想查看方法运行前后,当前对象中的全局属性,可以使用target关键字,代表当前对象
然后使用target.field_name访问当前对象的某个全局属性
$ watch com.liusy.arthas_demo.controller.ArthasController test 'target.service'
(3)trace方法内部调用路径,并输出方法路径上的每个节点上耗时trace 命令能主动搜索 class-pattern/method-pattern 对应的方法调用路径,渲染和统计整个调用链路上的所有性能开销和追踪调用链路 。
class-pattern 类名表达式匹配method-pattern 方法名表达式匹配condition-express 条件表达式[E] 开启正则表达式匹配,默认为通配符匹配[n:] 命令执行次数#cost 方法执行耗时
例如:trace com.liusy.arthas_demo.controller.ArthasController test
文章插图
按照耗时过滤:
trace com.liusy.arthas_demo.controller.ArthasController test #cost>1
文章插图
(4)stack输出当前方法被调用的调用路径
很多时候我们都知道一个方法被执行,但这个方法被执行的路径非常多,或者你根本就不知道这个方法是从那里被执行了,此时你需要的是 stack 命令 。
class-pattern 类名表达式匹配method-pattern 方法名表达式匹配condition-express 条件表达式[E] 开启正则表达式匹配,默认为通配符匹配[n:] 执行次数限制
例如:按照耗时查询,只会打印出耗时小于30ms的堆栈情况
stack com.liusy.arthas_demo.controller.ArthasController test #cost<30
文章插图
(5)sc查看jvm已加载的类信息
Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息,这个命令支持的参数有 [d]、[E]、[f] 和 [x:] 。
参数说明:
class-pattern 类名表达式匹配method-pattern 方法名表达式匹配[d] 输出当前类的详细信息,包括这个类所加载的原始文件来源、类的声明、加载的ClassLoader等详细信息 。如果一个类被多个ClassLoader所加载,则会出现多次[E] 开启正则表达式匹配,默认为通配符匹配[f] 输出当前类的成员变量信息(需要配合参数-d一起使用)[x:] 指定输出静态变量时属性的遍历深度,默认为 0,即直接使用 toString 输出
?
class-pattern支持全限定名,如com.liusy.demo,也支持com/liusy/demo这样的格式.
?
?1、查看类的静态变量信息
sc 默认开启了子类匹配功能,也就是说所有当前类的子类也会被搜索出来,想要精确的匹配,请打开options disable-sub-class true开关
?
sc -df 类的全限定名
文章插图
(6)sm查看已加载类的方法信息
“Search-Method” 的简写,这个命令能搜索出所有已经加载了 Class 信息的方法信息 。
sm 命令只能看到由当前类所声明 (declaring) 的方法,父类则无法看到 。
class-pattern 类名表达式匹配method-pattern 方法名表达式匹配[d] 展示每个方法的详细信息[E] 开启正则表达式匹配,默认为通配符匹配
文章插图
(7)dashboard当前进程的实时数据面板(包括内存,线程等信息),按ctrl+c退出 。
数据说明:
ID: Java级别的线程ID,注意这个ID不能跟jstack中的nativeID一一对应NAME: 线程名GROUP: 线程组名PRIORITY: 线程优先级, 1~10之间的数字,越大表示优先级越高STATE: 线程的状态CPU%: 线程消耗的cpu占比,采样100ms,将所有线程在这100ms内的cpu使用量求和,再算出每个线程的cpu使用占比 。TIME: 线程运行总时间,数据格式为分:秒INTERRUPTED: 线程当前的中断位状态DAEMON: 是否是daemon线程
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 工具推荐:静态代码分析工具清单
- 张飞是一个怎样的人物,评价张飞是什么样的人
- 中国第一个大一统王朝是哪个朝代,历代统一中国的有几个朝代
- 秦始皇不是第一个皇帝,为什么秦始皇是中国第一皇帝
- 程序员的核心竞争力
- 文鸳厉害嘛,文鸳和文鸯是一个人吗?
- 有哪些养胃的食物推荐
- 贾岛是一个什么样的人,贾岛的生平
- 萝卜怎么腌好吃又脆?
- 《金铲铲之战》阵容怎样搭配?