Как избежать усеченных следов стека с помощью Java Flight Recorder
Я использую Oracle Java Flight Recorder для сбора образцов трассировки стека Java-приложения. Эти трассировки стека позволяют мне в конечном итоге создать процессор Flamegraph.
Моя проблема в том, что трассировка стека глубже 64 кадров усекается с помощью Java Flight Recorder. Это очень легко наблюдать в Flamegraph и используя отладчик, я могу заметить, что нет FLRStackTrace
имеет более 64 FLRFrame
s и что почти для всех трассировок стека с 64 кадрами TruncationState имеет значение TRUNCATED
,
Кто-нибудь знает, можно ли увеличить этот предел в 64 кадра? Flamegraphs бесполезны, если трассировка стека неполная.
1 ответ
Ага! Но нет, если вы работаете на JRockit. Если вы работаете в HotSpot, просто используйте флаг -XX: FlightRecorderOptions = stackdepth =
Более подробная информация здесь: http://hirt.se/blog/?p=364