Стремясь повысить производительность 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, могут помочь разработчикам создавать серверную часть. , веб- и мобильных приложений быстро и эффективно. Приложения AppMaster могут демонстрировать выдающуюся масштабируемость и низкую задержку, что делает их подходящими для корпоративных приложений и сценариев с высокой нагрузкой. Чтобы более подробно изучить возможности AppMaster, appmaster .io" data-mce-href="https: appmaster.io">создайте бесплатную учетную запись и воспользуйтесь мощными инструментами no-code.