Shenandoah: сборщик мусора, который смог (часть 1)

2 ноября 2017-го в новом офисе компании SEMrush состоялась встреча с Алексеем Шипилёвым, инженером компании Red Hat, Java-чемпионом, экспертом в области JVM и оптимизации производительности.

Логистический комментарий:

Этот доклад во многом повторяет доклад Алексея с JPoint 2017.

Если вы его уже слушали или смотрели видеозапись, то нового увидите мало, хотя многое наверняка будет лучше объяснено. Этот доклад является обязательным пререквизитом к докладу на Joker 2017 с тем же названием и припиской «… (часть 2)».

Оригинальная аннотация:

Одна из главных проблем больших Java-приложений — это cбо… рка мусо… ра. Хранение больших куч данных, активно фрагментирующие приложения и прочие выпадающие из гипотезы о поколениях нагрузки приносят ещё больше проблем. Промышленные GC давно решили первую большую часть проблемы сборки, concurrent marking — выяснение графа объектов без долгой остановки приложения.

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