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