使用Arthas 对线上代码执行耗时分析

java -jar arthas-boot.jar
/usr/local/java/jdk1.8.0_333/bin/java -jar /root/arthas-boot.jar   生产服务器使用这个命令
如果已经启动,可以使用telnet 127.0.0.1 3658直接连接

启动完毕后会展示主机上全部的java进程

选择一码行tomcat_1对应的进程id.此处是1,按1进入

trace命令的使用

比如我要分析类OrderApplicationQueryService中的listPackage方法的耗时

我们使用如下命令

trace com.test.query.OrderApplicationQueryService listPackage -n 1
trace com.ctsi.order.umsPay.service.impl.UmsPayServiceImpl b2bPlaceOrder -n 1

执行完上述命令后出现如下 listenId:1表示已经在监听方法,后续发生调用会展示详细调用信息

如下可以发现此方法的总体用时及各个方法的用时