2014-06-05 36 views
12

系統分析器,如DTrace和Linux perf_events,能夠從JVM中分析堆棧跟蹤。現在,除了符號外(這是另一個問題),DTrace和perf_events都會收集很多隻有1幀的堆棧。這些是部分的,不完整的堆棧。如何禁用Java堆棧幀優化或使用系統分析器的配置文件堆棧?

我試過了DTrace jstack()和Linux的perf_events,它們都是幀指針和矮棧解卷。

我相信這是由於熱點編譯優化的幀。是否有辦法禁用此優化,以便標準系統配置文件(如Solaris DTrace和Linux perf)可以工作?

我已經嘗試了以下選項:-XX:+ DeoptimizeRandom -XX:MaxInlineSize = 0 -XX:-OmitStackTraceInFastThrow -XX:+ UnlockDiagnosticVMOptions -XX:+ ShowHiddenFrames

回答