Post

На заметку: Java 21 + сборщик мусора ZGC вместо G1GC. Жор оперативы сервера Minecraft 1.20.1 с 208 модами (включая тяжелые GregTech, Ad Astra, TerraFirmaCraft, Create + аддоны) упал с 10 ГБ до 1.72 ГБ с одним игроком и около 2.8 ГБ если этот один игрок начнет бешено грузить/генерировать чанки.

Для технически грамотных людей: Да, я в курсе, что при использовании G1GC эти 10 ГБ оперативы (-Xmx10G) не жрутся сразу, а просто резервируются. Как я поняла, суть в том, что ZGC эффективнее утилизирует мусорные объекты в памяти, а потому отпадает необходимость резервировать огромные куски памяти

там дело не в эффективности, просто сборщики мусора в java в основном стремятся не снизить потреблениие памяти (для этого есть xmx), а использовать весь объем но уменьшить или перераспределить задержки при сборке, zgc же старается начать сборку мусора пораньше, чтобы не делать ее под нагрузкой

Да, спасибо за подробное описание. Насколько я знаю, суть ZGC в том, что он чистит объекты в памяти сразу, как они освобождаются, а не ждет, когда накопится "критическое" количество объектов, чтобы разом вычистить, как делает G1GC, ну и, собственно, JVM не резервирует сразу кучу памяти заранее.

0 reposts1 like

No replies yet.