JProfiler可以测量堆栈深度吗?

2022-04-12 00:00:00 stack-overflow java jprofiler

这与另一个问题密切相关:How can I measure thread stack depth?

JProfiler可以监视线程并测量最深的堆栈发生在哪里吗?如果是这样,我如何才能做到这一点?我希望在我的应用程序中找到接近触发StackOverflow Error的危险位置。


解决方案

Jprofiler没有直接将其作为一项功能。但是,您可以执行以下操作:

  • 记录有采样且无过滤器的CPU数据

  • 转到CPU部分的调用树视图

  • 以XML格式导出调用树,选择文件选择器对话框底部的"整个树"选项

  • 编写一个小程序,分析导出的XML文件并找到嵌套最深的元素

您还可以通过脱机分析和用于记录CPU数据并保存快照的触发器自动执行此操作。使用"jpexport"命令行可执行文件,您就可以从保存的快照中导出调用树。

相关文章