编程语言
首页 > 编程语言> > 如何使用Java Flight Recorder避免截断的堆栈跟踪

如何使用Java Flight Recorder避免截断的堆栈跟踪

作者:互联网

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

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

有谁知道这64帧限制是否可以增加?如果堆栈跟踪不完整,则Flamegraphs无用.

解决方法:

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

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

标签:java,jvm,jmc,jfr,flamegraph
来源: https://codeday.me/bug/20190824/1708647.html