stack
查看某个方法的调用栈的路径
/**
*.ArthadDemo是对应的类
show是对应的方法名
*/
[arthas@7248]$ stack *.ArthasDemo show
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 77 ms, listenerId: 2
ts=2023-07-21 22:50:17;thread_name=Thread-0;id=e;is_daemon=false;priority=5;TCCL=jdk.internal.loader.ClassLoaders$AppClassLoader@61064425
@com.example.demo.ArthasDemo.show()
at com.example.demo.ArthasDemo$1.run(ArthasDemo.java:14)
at java.lang.Thread.run(Thread.java:834)
//表示利用arthas捕获对应类的show方法3次,也就是打印对应方法3次栈
stack *.ArthasDemo show -n 3
我们暂时可以忽略-m这个参数
trace
对整个方法的每一个链路的耗时
[arthas@2312]$ trace *.ArthasDemo show
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 84 ms, listenerId: 1
`---ts=2023-07-21 23:49:52;thread_name=Thread-0;id=e;is_daemon=false;priority=5;TCCL=jdk.internal.loader.ClassLoaders$AppClassLoader@61064425
`---[8017.2216ms] com.example.demo.ArthasDemo:show() //show方法的耗时是8秒
`---[62.43% 5005.0764ms ] com.example.demo.ArthasDemo:kk() #41 //kk方法的耗时是5秒