Arthas
官网文档:https://arthas.aliyun.com/doc/
查看最繁忙的线程,以及是否有阻塞情况发生
场景:我想看下查看最繁忙的线程,以及是否有阻塞情况发生?
thread -n 3 # 查看最繁忙的三个线程栈信息
thread # 以直观的方式展现所有的线程情况
thread -b # 找出当前阻塞其他线程的线程确认某个类是否已被系统加载
场景:我新写了一个类或者一个方法,我想知道新写的代码是否被部署了?
# 找到需要的类全路径(如果存在的话), 会返回类的所有子类
sc *.MathGame
# 查看这个某个类所有的方法
sm demo.MathGame *
# 查看某个方法的信息,如果存在的话
sm demo.MathGame print查看一个 class 类的源码信息(反编译)
场景:我新修改的内容在方法内部,而上一个步骤只能看到方法,这时候可以反编译看下源码
跟踪某个方法的返回值、入参
场景:我想看下我新加的方法在线运行的参数和返回值?
查看方法调用栈的信息
场景:我想看下某个方法的调用栈的信息?
运行此命令之后需要及时触发方法才会有响应的信息打印在控制台上
到最耗时的方法调用
场景:testMethod 这个方法入口响应很慢,如何找到最耗时的子调用?
临时更改代码运行
场景:我找到了问题所在,能否线上直接修改测试,而不需要在本地改了代码后,重新打包部署,然后重启观察效果?
测试某个方法的性能问题
使用 Idea 的远程调试
要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的 JVM 参数,这些参数是:
最后更新于