Этап 7 из 11 · ≈ 8 ч

Сборка мусора

Основа с Middle

Поколения, алгоритмы и сборщики (G1, ZGC), паузы и тюнинг.

Что важно знать

  • Большинство объектов умирает молодыми — отсюда поколения.
  • G1 — по умолчанию, регионы, целевая пауза.
  • ZGC — паузы меньше миллисекунды ценой ресурсов.
  • Типы ссылок: сильные, мягкие, слабые, фантомные.

Критерии освоения

Middle ≈ 8 ч

  • Объясняет поколения, достижимость и как работает G1
  • Читает GC-лог и находит длинные паузы

Практика. Включить GC-логи у сервиса под нагрузкой и описать частоту и длительность пауз.

Senior ≈ 6 ч

  • Выбирает сборщик (G1, ZGC, Parallel) под требования задержки и пропускной способности
  • Диагностирует проблемы GC по метрикам продакшена

Практика. Сравнить G1 и ZGC на одном сервисе под нагрузкой по p99 задержки и потреблению памяти.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Какие объекты удаляет сборщик мусора?Junior

Удаляются недостижимые от корней объекты: сборщик обходит граф ссылок от GC roots, всё, до чего не дошёл, — мусор.

Полный разбор
Каков компромисс трёх базовых алгоритмов GC: mark-sweep, mark-compact, copying?Middle

Mark-sweep — пометить живых, освободить остальное: быстро, но фрагментация. Mark-compact — плюс уплотнение живых: нет фрагментации, но перемещение дорого. Copying — копировать живых в пустую область: быстро и без фрагментации, но нужна половина места в…

Полный разбор
Как выбрать сборщик мусора: Parallel, G1 или ZGC?Senior

Ось выбора — пропускная способность против задержки. Parallel — максимум throughput, паузы растут с кучей: батчи. G1 (по умолчанию с JDK 9) — баланс с целевой паузой MaxGCPauseMillis. ZGC (или Shenandoah) — паузы под миллисекунду почти независимо от размера…

Полный разбор
Что означает пауза stop-the-world при сборке мусора?Junior

Stop-the-world — все потоки приложения приостанавливаются, пока сборщик выполняет часть работы; эти паузы и стараются сокращать.

Полный разбор
Что показывают метрики allocation rate и promotion rate?Middle

Allocation rate — сколько МБ/с приложение создаёт объектов: чем выше, тем чаще minor GC. Promotion rate — сколько МБ/с переезжает в старое поколение: чем выше, тем чаще old/full GC.

Полный разбор
Что такое stop-the-world и safepoint в работе GC?Senior

Stop-the-world — пауза, когда все потоки приложения стоят. Останавливаются они в safepoint — точках кода, где JVM точно знает, какие ячейки стека и регистры содержат ссылки, и может безопасно двигать объекты и исправлять ссылки.

Полный разбор

Разборы темы

← Вся карта «Java»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования