如果通过线程转储的方式,只能得到某个时间点的信息(不全面)。但是如果采用JVM监控工具抽样,寻找特定的某个方法之后的执行过程太过于麻烦,请问有其他方法吗?
如果通过线程转储的方式,只能得到某个时间点的信息(不全面)。但是如果采用JVM监控工具抽样,寻找特定的某个方法之后的执行过程太过于麻烦,请问有其他方法吗?
方法调用其实就是一个入栈出栈的过程。线程转储只能看到方法的调用链(也就是说堆栈),因为调用链全部还全部保存在栈中的,B方法调用完成都已经出栈了,怎么还能得到B方法的信息呢?如果你要知道调用的所有方法,唯一的途径就是在调用方法时记录这次调用的信息(日志也是记录的一种方式),其实楼上也是这个意思。
4 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答730 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
如果允许侵入源码,我建议直接打印日志,在日志中打印堆栈就可以了(建议这种信息打印到DEBUG级别)。