Можем ли мы использовать сборщик мусора G1GC для меньшего размера кучи?

Нам нужна помощь в отношении алгоритма G1GC, можем ли мы использовать этот GC для небольшого размера кучи около 1 ГБ или это только для большей кучи.

Мы хотим использовать этот сборщик мусора, потому что мы получаем «превышен лимит накладных расходов сборщика мусора» и приложение, использующее сборщик сборщика мусора по умолчанию.


person Mohd shaban    schedule 15.12.2019    source источник


Ответы (1)


Я предполагаю, что вы все еще используете OpenJDK 8 и сборщик мусора Parallel (в противном случае по умолчанию уже используется G1). Трудно обобщать, но G1 больше выигрывает от дополнительного запаса мощности, чем параллельный коллектор. Если размер кучи уже ограничен, переход на G1, скорее всего, усугубит ситуацию. С другой стороны, если ваша рабочая нагрузка значительно выигрывает от дедупликации строк G1 (которую необходимо явно включить с помощью -XX:+UseStringDeduplication), G1 действительно может быть лучшим вариантом.

В любом случае вам, вероятно, следует перейти на OpenJDK 11, если вы хотите использовать G1 из-за множества улучшений.

person Florian Weimer    schedule 15.12.2019