Я знаю, что существует множество способов взять кучу кучи Java-процесса. Но я хотел бы знать, как эти данные собираются.Как свалка кучи собирает данные
Другими словами, какой компонент в JVM предоставляет данные кучи при запуске дампа.
Я знаю, что существует множество способов взять кучу кучи Java-процесса. Но я хотел бы знать, как эти данные собираются.Как свалка кучи собирает данные
Другими словами, какой компонент в JVM предоставляет данные кучи при запуске дампа.
Вообще говоря, такой инструмент, как «jmap», говорит о компонентах, которые не являются частью общедоступных API Java: материал в пакетах sun.jvm.hotspot.*
.
Если «jmap» демпинг присоединенную JVM, он взаимодействует с агентом отладки JVM с помощью JVMTI.
В других случаях «jmap» использует различные классы в sun.jvm.hotspot.*
для извлечения информации из адресного пространства процессов JVM или дампа ядра.
Если вы хотите понять, окровавленные детали, загрузить исходный код OpenJDK (выбрать любую версию), найдите файл JMap.java
и начать читать.