Що таке UseG1GC?
-XX:+UseG1GC – Вказує JVM використовувати збірник сміття G1. -XX:MaxGCPauseMillis=200 – встановлює цільовий максимальний час паузи GC. Це м’яка мета, і JVM докладе всіх зусиль для її досягнення. Тому цільовий час паузи іноді не досягається. Стандартне значення становить 200 мілісекунд.
Плюси використання G1 GC Покращено час паузи: G1 GC має на меті забезпечити більш передбачуваний і коротший час пауз, особливо для програм із великими купами, шляхом мінімізації тривалості пауз у збиранні сміття.
Основні відмінності CMS збирає сміття на основі генерації купи та має різні етапи, які просуваються з простору Eden, де нові об’єкти розподіляються до просторів вижилих і, зрештою, до старого покоління. Збирання сміття G1 керує купою як регіонами.
Ви можете явно ввімкнути це за допомогою надання -XX:+UseG1GC у командному рядку.
Паралель перемагає як найкращий GC для цієї програми приблизно на 22% швидше, ніж стандартна конфігурація JVM (G1).
Цього можна досягти шляхом зниження значення '-XX:InitiatingHeapOccupancyPercent'. Значення за замовчуванням — 45. Це означає, що фаза маркування G1 GC почнеться лише тоді, коли використання купи досягне 45%. При зниженні значення фаза маркування G1 GC запускатиметься раніше, щоб можна було уникнути повного GC.