这与另一个问题密切相关:如何测量线程堆栈深度?
JProfiler可以监视线程并测量最深的堆栈发生在哪里吗?如果有,我该怎么做呢?我想在我的应用程序中找到我正在危险地接近触发StackOverflowError的地方。
JProfiler没有这个功能。但是,您可以执行以下操作:
-
记录CPU数据,不带采样,不带滤波器
-
进入CPU部分的调用树视图
-
以XML格式导出呼叫树,选择文件选择器对话框底部的"整个树"选项
-
写一个小程序,分析导出的XML文件,找出嵌套最深的元素
您还可以使用离线分析和触发器来自动记录CPU数据并保存快照。使用"jpexport"命令行可执行文件,您就可以从保存的快照中导出调用树。