25 мар. 2023 г.·1 мин

Предложение по повышению производительности Java с помощью сборщика мусора Z

Новое предложение в сообществе Java направлено на повышение производительности приложений за счет расширения Z Garbage Collector, что позволяет ему поддерживать отдельные поколения для молодых и старых объектов, снижая риски остановки выделения памяти, накладные расходы памяти кучи и накладные расходы ЦП на сборку мусора.

Предложение по повышению производительности Java с помощью сборщика мусора Z

Стремясь повысить производительность Java-приложений, новое предложение в сообществе Java направлено на расширение Z Garbage Collector (ZGC), позволяющее поддерживать отдельные поколения для молодых и старых объектов. По словам разработчиков Java, это позволит ZGC собирать молодые объекты чаще, поскольку молодые объекты имеют более высокую вероятность умереть молодыми.

Основными целями OpenJDK Java Enhancement Proposal (JEP) для поколения ZGC являются снижение рисков остановки распределения, накладных расходов памяти кучи и накладных расходов ЦП на сборку мусора (GC). Сторонники предложения считают, что этих преимуществ можно добиться, не вызывая значительного снижения пропускной способности по сравнению с ZGC без генерации.

Z Garbage Collector, разработанный для обеспечения масштабируемости и низкой задержки, был доступен в рабочих выпусках с выпуска Java Development Kit (JDK) 15 в сентябре 2020 года. В отличие от сборщика мусора G1 по умолчанию, время паузы которого может варьироваться от миллисекунд. до секунд, время пауз ZGC постоянно измеряется в микросекундах. Следовательно, ZGC может эффективно решать проблемы задержки, связанные со сборкой мусора, для многих рабочих нагрузок.

ZGC работает хорошо, когда доступны адекватные ресурсы. Однако, поскольку он хранит все объекты вместе, независимо от их возраста, ZGC требуется собирать все объекты каждый раз, когда он работает. Гипотеза слабого поколения утверждает, что молодые объекты имеют тенденцию умирать молодыми, в то время как более старые объекты, вероятно, сохраняются. В результате сбор молодых объектов требует меньше ресурсов и высвобождает больше памяти, а сбор старых объектов требует больше ресурсов и освобождает меньше памяти.

Предложение ZGC поколения еще не было привязано к конкретной стандартной версии Java. Текущий выпуск JDK 20 был представлен неделю назад, а запуск JDK 21 запланирован на сентябрь. Стандартная версия Java работает с периодичностью выпуска раз в шесть месяцев.

Поскольку обсуждается предложение поколения ZGC, платформы no-code, такие как [appmaster .io" target="_blank" rel="noopener" data-mce-href="https:// appmaster.io"> AppMaster, могут помочь разработчикам](https://<span class=) создавать серверную часть. , веб- и мобильных приложений быстро и эффективно. Приложения AppMaster могут демонстрировать выдающуюся масштабируемость и низкую задержку, что делает их подходящими для корпоративных приложений и сценариев с высокой нагрузкой. Чтобы более подробно изучить возможности AppMaster, [appmaster .io" data-mce-href="https: appmaster.io">создайте бесплатную учетную запись](https://studio.<span class=) и воспользуйтесь мощными инструментами no-code.

Легко начать
Создай что-то невероятное

Экспериментируйте с AppMaster с бесплатной подпиской.
Как только вы будете готовы, вы сможете выбрать подходящий платный план.

Попробовать AppMaster