2

这与另一个问题密切相关:如何测量线程堆栈深度?

JProfiler 可以观察线程并测量最深堆栈发生的位置吗?如果是这样,我该怎么做?我想在我的应用程序中找到接近触发 StackOverflowError 的危险点。

4

1 回答 1

1

JProfiler 没有直接将此作为功能。但是,您可以执行以下操作:

  • 记录带采样且不带过滤器的 CPU 数据

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

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

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

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

于 2011-12-04T13:04:59.363 回答