Dans un effort pour améliorer les performances des applications Java, une nouvelle proposition au sein de la communauté Java vise à étendre le Z Garbage Collector (ZGC), lui permettant de maintenir des générations distinctes pour les objets jeunes et anciens. Cela permettrait à ZGC de collecter plus fréquemment de jeunes objets, car les jeunes objets ont une probabilité plus élevée de mourir jeunes, selon les développeurs Java.
Les principaux objectifs de la OpenJDK Java Enhancement Proposal (JEP) pour le ZGC générationnel impliquent la réduction des risques de blocage d'allocation, de la surcharge de la mémoire du tas et de la surcharge du processeur de la récupération de place (GC). Les promoteurs de la proposition estiment que ces avantages peuvent être obtenus sans entraîner une diminution significative du débit par rapport à ZGC non générationnelle.
Le Z Garbage Collector, qui a été conçu pour l'évolutivité et une faible latence, est disponible dans les versions de production depuis le Java Development Kit (JDK) 15 en septembre 2020. Contrairement au collecteur G1 par défaut, qui a des temps de pause pouvant aller de millisecondes en secondes, les temps de pause ZGC sont systématiquement mesurés en microsecondes. Par conséquent, ZGC peut résoudre efficacement les problèmes de latence liés à la récupération de place pour de nombreuses charges de travail.
ZGC fonctionne bien lorsque des ressources adéquates sont disponibles. Cependant, comme il stocke tous les objets ensemble quel que soit leur âge, ZGC est tenu de collecter tous les objets à chaque fois qu'il fonctionne. L'hypothèse générationnelle faible affirme que les objets jeunes ont tendance à mourir jeunes, tandis que les objets plus anciens sont susceptibles de persister. Par conséquent, la collecte d'objets jeunes demande moins de ressources et libère plus de mémoire, tandis que la collecte d'objets anciens consomme plus de ressources et libère moins de mémoire.
La proposition ZGC générationnelle n'a pas encore été affectée à une version Java standard spécifique. La version actuelle, JDK 20, a été introduite il y a une semaine, JDK 21 devant être lancé en septembre. Java standard fonctionne sur une cadence de publication de six mois.
Alors que la proposition générationnelle ZGC est en cours de discussion, des plates no-code comme appmaster .io" target="_blank" rel="noopener" data-mce-href="https:// appmaster.io"> AppMaster peuvent aider les développeurs à créer un backend , Web et mobiles rapidement et efficacement. Les applications AppMaster peuvent faire preuve d'une évolutivité exceptionnelle et d'une faible latence, ce qui les rend adaptées aux applications d'entreprise et aux scénarios de charge élevée. Pour explorer davantage les fonctionnalités d'AppMaster, appmaster .io" data-mce-href="https : //studio. appmaster.io">créez un compte gratuit et profitez de ses puissants outils no-code.