Профилировщики системы, такие как DTrace и Linux perf_events, могут отслеживать трассировки стека из JVM. Теперь, символы в стороне (что еще одна проблема), и DTrace, и perf_events собирают много стеков, которые всего 1 кадр. Это частичные, неполные стеки.
Я пробовал DTrace jstack() и Linux perf_events с разворачиванием фрейма и карликом фреймов.
Я считаю, что это связано с тем, что hotspot компилирует оптимизированные кадры. Есть ли способ отключить эту оптимизацию, чтобы работали стандартные профилиры системы (например, Solaris DTrace и Linux perf)?
Я уже пробовал следующие параметры: -XX: + DeoptimizeRandom -XX: MaxInlineSize = 0 -XX: -OmitStackTraceInFastThrow -XX: + UnlockDiagnosticVMOptions -XX: + ShowHiddenFrames