Андрей Паньгин - Память Java процесса по полочкам
Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
. . . . Феерическая расстановка точек над тем, почему Джава жрёт память. Всё, что вы хотели знать, всё, о чём догадывались, и то, что будет сниться вам в кошмарах :) Самое главное - разобраны инструменты, с помощью которых можно увидеть и пощупать потребление памяти.
Означает ли JVM-параметр -Xmx4G, что процесс займёт не более 4-х гигабайт в системе? Разумеется, нет. На что ещё уйдёт виртуальная память и, главное, сколько? Вопрос становится особенно актуальным при разделении ресурсов между несколькими процессами или при запуске Java в контейнере.
Помимо самой виртуальной машины жадными до памяти оказываются библиотеки и пользовательские приложения. Но если утечку Java-объектов обычно легко выявить из хип-дампа, то утечка нативной памяти может поставить в тупик.
В докладе мы разберём, на какие структуры виртуальной машины расходуется оперативная память, как мониторить и регулировать её потребление. Изучим различные стратегии управления виртуальной памятью, выясним, что изменилось в новых версиях JDK. Рассмотрим реальные примеры утечек нативной памяти и познакомимся с инструментами для анализа аллокаций.
Пікірлер: 12
супер информативно!
Огонь тема, спасибо
А где можно найти розписаную иерархию памяти, кроме документации?
Спасибо за лекцию!
Про xms неточность в
На работе писал прогу из 2 частей: логгер gc и gccapacity для 7-8 Java-процессов нашего софта, и анализатор этих логов (ищет пики, выводит лог событий). До сих пор не могу понять, почему GC срабатывает при юзадже от 40 до 60 процентов от хмх, а не 80 хотя бы. Хз что делать с этим анализом правда