5

我正在使用 Oracle Java Flight Recorder收集 Java 应用程序的堆栈跟踪示例。这些堆栈跟踪使我最终能够生成CPU Flamegraph

我的问题是超过 64 帧的堆栈跟踪被 Java Flight Recorder 截断。在 Flamegraph 中很容易观察到,使用调试器我可以观察到 noFLRStackTrace超过 64FLRFrame秒,并且几乎所有 64 帧的堆栈跟踪都将其 TruncationState 设置为TRUNCATED

有谁知道这个 64 帧限制是否可以增加?如果堆栈跟踪不完整,火焰图将毫无用处。

4

1 回答 1

7

是的!但如果您在 JRockit 上运行,则不会。如果在 HotSpot 上运行,只需使用标志-XX:FlightRecorderOptions=stackdepth=<n>,正如您所发现的,其中 n 默认为 64。

更多信息在这里: http ://hirt.se/blog/?p=364

于 2015-08-21T08:40:14.423 回答