Что такое «События» в hs_err_pid.log?

avatar
Jiayi Liao
8 апреля 2018 в 10:03
919
1
2

Я нашел их в своем файле hs_err_pid.log.

Events (10 events):
Event: 2603309.010 Thread 0x00007ff2c800c000 DEOPT UNPACKING pc=0x00007ff34aaddf69 sp=0x00007ff3409e88a8 mode 2
Event: 2603310.108 Thread 0x00007ff362229000 DEOPT PACKING pc=0x00007ff34b25ce6c sp=0x00007ff340ceb660
Event: 2603310.122 Thread 0x00007ff2c8009800 Uncommon trap: trap_request=0xffffff65 fr.pc=0x00007ff34b890e40
Event: 2603310.124 Thread 0x00007ff2c8009800 DEOPT PACKING pc=0x00007ff34b890e40 sp=0x00007ff3408e7790
Event: 2603310.124 Thread 0x00007ff2c8009800 DEOPT UNPACKING pc=0x00007ff34aaddf69 sp=0x00007ff3408e7680 mode 2
Event: 2603310.125 Thread 0x00007ff2c8009800 Uncommon trap: trap_request=0xffffff65 fr.pc=0x00007ff34b850fe4
Event: 2603310.125 Thread 0x00007ff2c8009800 DEOPT PACKING pc=0x00007ff34b850fe4 sp=0x00007ff3408e7560
Event: 2603310.125 Thread 0x00007ff2c8009800 DEOPT UNPACKING pc=0x00007ff34aaddf69 sp=0x00007ff3408e72d8 mode 2
Event: 2603310.126 Thread 0x00007ff362229000 DEOPT UNPACKING pc=0x00007ff34aaddf69 sp=0x00007ff340ceb628 mode 2
Event: 2603310.935 Thread 0x00007ff2d8001000 Thread added: 0x00007ff2d8001000

И я понятия не имею об этой информации, и мне любопытно, даже если это не поможет мне проанализировать аварию.

  1. Что означает число вроде "2603309.010"?
  2. Что означают описания? в том числе DEOPT, UNPACKING/PACKING, Uncommon trap, trap_request, pc и sp ?
Источник

Ответы (1)

avatar
apangin
8 апреля 2018 в 10:28
4

Это история последних 10 событий среды выполнения ВМ (кроме компиляции и сборщика мусора).

2603309.010 — отметка времени — количество секунд с момента запуска ВМ.

Uncommon trap — ситуация, когда спекулятивное предварительное условие в скомпилированном коде не выполняется. Обычно это приводит к deoptimization — переключению с скомпилированного кода обратно на интерпретатор. Деоптимизация сначала собирает информацию о виртуальных кадрах (упаковка), а затем разворачивает эти кадры на стек в формате интерпретатора (распаковка). pc и sp — счетчик программ и указатель стека.

Из Глоссария терминов HotSpot:

необычная ловушка

Когда код, сгенерированный C2, возвращается к интерпретатор для дальнейшего исполнения. C2 обычно компилируется для общий случай, что позволяет сосредоточиться на оптимизации часто выполненные пути. Например, C2 вставляет необычную ловушку в сгенерированные код, когда класс, который не инициализирован во время компиляции, требует запуска инициализация времени.

деоптимизация

Процесс преобразования скомпилированного (или более оптимизированный) кадр стека в интерпретируемый (или менее оптимизированный) стек Рамка. Также описывается отбрасывание метода n, зависимости которого (или другие предположения) были нарушены. Деоптимизированные nметоды обычно перекомпилируется для адаптации к изменяющемуся поведению приложения. Пример: компилятор изначально предполагает, что ссылочное значение никогда не равно нулю, и тестирует его, используя перехватывающий доступ к памяти. Позже, приложение использует нулевые значения, а метод деоптимизирован и перекомпилирован для использования явной идиомы test-and-branch для обнаружения таких нули.