Вопросы к Поиску с Алисой
Разница между сборщиками мусора G1GC и Shenandoah в JVM заключается в том, как они выполняют сборку мусора. javarush.com vc.ru
G1GC (Garbage first GC, «Мусор — первым») разработан для многопоточных приложений с крупным размером кучи (более 4 ГБ). javarush.com vc.ru Он разделяет кучу на множество областей различного размера и выполняет глобальную маркировку объектов. axiomjdk.ru Определив, какие области наиболее пустые, G1GC сначала выполняет сборку мусора там, освобождая большой объём памяти. axiomjdk.ru
Shenandoah (выпущен как часть JDK 12) выполняет большую часть цикла сборки мусора одновременно с потоками приложений. javarush.com vc.ru Shenandoah может компактировать живые объекты, очищать мусор и освобождать оперативную память почти сразу после обнаружения свободной памяти. javarush.com Поскольку всё это происходит одновременно, без приостановки работы приложения, то Shenandoah более интенсивно нагружает процессор. javarush.com
Таким образом, G1GC подходит для приложений, требующих баланса между паузами и пропускной способностью, а Shenandoah — для приложений с большими объёмами данных и требованиями к низкой задержке. github.com