针对一个接口,请求耗时过长,是忍无可忍的,但是如果没有工具的帮助,是否还单纯的使用 System.currentTimeMillis() 去打印时间?倘若我们一个接口里面的调用链路包含100多个实现方法,那怎么排查是哪个方法导致的整体耗时过长?
Arthas、trace命令
前提:启动Java项目
arthas-bin.zipjava -jar 启动 arthas-boot.jar
JAVA_HOME,可以输入命令 java_home -v 查看是否配置成功。如果不行的话,可以指定jdk的bin目录,执行 java -jar,譬如我的jdk下bin目录地址是 /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/bin,则执行命令如图:
/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/bin/java -jar arthas-boot.jar
格式:trace [全限定类名] [类中的方法名]
例如:trace com.core.service.TeacherService search
