
- •JAVA-ТЕХНОЛОГИЯ
- •Управление памятью
- •За что отвечает сборщик мусора
- •Требования к сборщику
- •Различия сборщиков
- •Концепция поколений
- •Молодое поколение
- •Старшее поколение
- •Поколения в HotSpot JVM
- •Молодое поколение
- •Виды сборок мусора
- •Быстрое выделение памяти
- •Сборщики в HotSpot JVM
- •Последовательный
- •Молодое поколение (сборка)
- •Молодое поколение (результат)
- •Старшее поколение
- •Старшее поколение
- •Параллельный сборщик
- •Молодое поколение
- •Параллельный сжимающий сборщик
- •Сборка в старшем поколении: маркировка
- •Сборка в старшем поколении: сведение
- •Сборка в старшем поколении: сжатие
- •Сборщик с минимальной задержкой
- •CMS: сборка в старшем поколении
- •Различия между СMS и последовательным сборщиками
- •Некоторые особенности CMS [1]
- •Некоторые особенности CMS [2]
- •Инкрементный режим
- •Клиентские и серверные конфигурации
- •Предустановки для клиентских машин
- •Предустановки для серверных машин
- •Получение желаемого поведения программы
- •Рекомендации по настройке сборки мусора
- •Выбор другого сборщика мусора
- •Изменение размеров кучи
- •Изменение размеров отдельных поколений
- •Настройка параллельных сборщиков
- •OutOfMemoryError
- •Способы оценки работы сборщика мусора
- •Список литературы

JAVA-ТЕХНОЛОГИЯ
Сафонов Владимир Олегович
Профессор кафедры информатики, руководитель лаборатории Java- технологии (http://polyhimnie.math.spbu.ru/jtl)
Email: vosafonov@gmail.com
Лекция 25
Управление памятью и сборка мусора в Java

Управление памятью
Ручное:
int* pt = new int;
…
delete pt;
Возможные проблемы:
Висячие ссылки
Утечки памяти
Автоматическое:
Программисту не приходится самостоятельно заботиться об очистке памяти
(С) Сафонов В.О. 2013

За что отвечает сборщик мусора
Выделяет память
Следит за тем, чтобы доступные объекты оставались в памяти
Освобождает память от мусора
(С) Сафонов В.О. 2013

Требования к сборщику
мусора
Обязательные требования:
Безопасность
“Полнота”
Дополнительные требования
Эффективность
(Компромисс: пространство-время-частота сборок)
Избежание фрагментированности
Параллельность
(С)Сафонов В.О. 2013

Различия сборщиков
мусора
Параллельные и последовательные
(parallel/serial)
Останавливающие или нет основную деятельность приложения
(concurrent/stop-the-world)
Сжимающие, несжимающие и копирующие
(compacting/non-compacting/copying)
(С)Сафонов В.О. 2013

Концепция поколений
Большинство объектов быстро становится мусором
Старые объекты, вероятно, проживут еще долго
Молодые объекты тесно связаны между собой
(С)Сафонов В.О. 2013

Молодое поколение
Память под новые объекты выделяется в молодом поколении
Молодое поколение имеет небольшой размер
Сборки мусора в нем частые, быстрые
иэффективные
Сборщик должен быть быстрым
(С)Сафонов В.О. 2013

Старшее поколение
Старшее поколение имеет больший размер
Заполняется медленно
Сборки мусора нечастые, но долгие
Сборщик должен быть рассчитан на большой объем памяти
(С)Сафонов В.О. 2013

Поколения в HotSpot JVM
Молодое поколение
(young generation)
Старшее поколение
(old generation)
Постоянное поколение
(permanent generation)
(С) Сафонов В.О. 2013

Молодое поколение
Eden |
|
Survivor |
Свободно |
spaces |
|
(С) Сафонов В.О. 2013