背景
使用arthas的trace分析方法的耗时时,我们一般只能分析下一层的方法的耗时,然后一层一层的递归进去找到耗时最长的那个方法,有没有一种方式可以一次trace分析就可以把所有要关注的下层所有的耗时都打印出来?
解决方式
使用trace -E com.test.ClassA|org.test.ClassB method1|method2|method3 这种方式可以变相达到一次操作然后把所有下层耗时都打印出来的效果:
得到的结果如上所示,如果还需要继续递归的话,只需要继续添加上对应的方法即可,另外,需要注意,arthas默认是不会统计jdk自带的方法的耗时的,所以在使用jdk的排序等方法时会导致产生误判,所以需要的话,我们可以加上–skipJDKMethod false参数打印jdk方法的耗时.
参考地址: https://arthas.aliyun.com/doc/trace.html#trace-%E6%AC%A1%E6%95%B0%E9%99%90%E5%88%B6