Что важно знать
- Большинство объектов умирает молодыми — отсюда поколения.
- G1 — по умолчанию, регионы, целевая пауза.
- ZGC — паузы меньше миллисекунды ценой ресурсов.
- Типы ссылок: сильные, мягкие, слабые, фантомные.
Поколения, алгоритмы и сборщики (G1, ZGC), паузы и тюнинг.
Практика. Включить GC-логи у сервиса под нагрузкой и описать частоту и длительность пауз.
Практика. Сравнить G1 и ZGC на одном сервисе под нагрузкой по p99 задержки и потреблению памяти.
Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.
Удаляются недостижимые от корней объекты: сборщик обходит граф ссылок от GC roots, всё, до чего не дошёл, — мусор.
Полный разборMark-sweep — пометить живых, освободить остальное: быстро, но фрагментация. Mark-compact — плюс уплотнение живых: нет фрагментации, но перемещение дорого. Copying — копировать живых в пустую область: быстро и без фрагментации, но нужна половина места в…
Полный разборОсь выбора — пропускная способность против задержки. Parallel — максимум throughput, паузы растут с кучей: батчи. G1 (по умолчанию с JDK 9) — баланс с целевой паузой MaxGCPauseMillis. ZGC (или Shenandoah) — паузы под миллисекунду почти независимо от размера…
Полный разборStop-the-world — все потоки приложения приостанавливаются, пока сборщик выполняет часть работы; эти паузы и стараются сокращать.
Полный разборAllocation rate — сколько МБ/с приложение создаёт объектов: чем выше, тем чаще minor GC. Promotion rate — сколько МБ/с переезжает в старое поколение: чем выше, тем чаще old/full GC.
Полный разборStop-the-world — пауза, когда все потоки приложения стоят. Останавливаются они в safepoint — точках кода, где JVM точно знает, какие ячейки стека и регистры содержат ссылки, и может безопасно двигать объекты и исправлять ссылки.
Полный разборГипотеза о поколениях, Eden и Survivor, minor GC через копирование, tenuring и преждевременное продвижение.
Mark-sweep-compact и копирование, stop-the-world и safepoints, конкурентная маркировка, G1 и ZGC и выбор по throughput/latency.
GC roots и reachability, strong/soft/weak/phantom-ссылки, Cleaner вместо finalize и утечки через сильные ссылки.
Ключевые флаги, unified GC-логи, метрики (паузы, throughput, allocation/promotion rate) и диагностика частых проблем.
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.