Nel tentativo di migliorare le prestazioni delle applicazioni Java, una nuova proposta all'interno della comunità Java cerca di estendere Z Garbage Collector (ZGC), consentendogli di mantenere generazioni separate per oggetti giovani e vecchi. Ciò consentirebbe ZGC di raccogliere oggetti giovani più frequentemente, poiché gli oggetti giovani hanno una maggiore probabilità di morire giovani, secondo gli sviluppatori Java.
Gli obiettivi primari della OpenJDK Java Enhancement Proposal (JEP) per lo ZGC generazionale riguardano la riduzione dei rischi di stallo dell'allocazione, l'overhead della memoria heap e l'overhead della CPU di Garbage Collection (GC). I fautori della proposta ritengono che questi vantaggi possano essere raggiunti senza causare una significativa riduzione del throughput rispetto allo ZGC non generazionale.
Z Garbage Collector, progettato per scalabilità e bassa latenza, è disponibile nelle versioni di produzione dal Java Development Kit (JDK) 15 nel settembre 2020. A differenza del raccoglitore G1 predefinito, che ha tempi di pausa che possono variare da millisecondi in secondi, i tempi di pausa ZGC sono costantemente misurati in microsecondi. Di conseguenza, ZGC può risolvere efficacemente i problemi di latenza relativi alla raccolta dei rifiuti per molti carichi di lavoro.
ZGC funziona bene quando sono disponibili risorse adeguate. Tuttavia, poiché memorizza tutti gli oggetti insieme indipendentemente dalla loro età, ZGC deve raccogliere tutti gli oggetti ogni volta che opera. L'ipotesi generazionale debole afferma che gli oggetti giovani tendono a morire giovani, mentre è probabile che gli oggetti più vecchi persistano. Di conseguenza, la raccolta di oggetti giovani richiede meno risorse e libera più memoria, mentre la raccolta di oggetti vecchi consuma più risorse e libera meno memoria.
La proposta ZGC generazionale non è stata ancora assegnata ad una specifica versione standard di Java. La versione attuale, JDK 20, è stata introdotta una settimana fa, con il lancio JDK 21 programmato per settembre. Standard Java opera su una cadenza di rilascio di sei mesi.
Mentre la proposta ZGC generazionale è in discussione, piattaforme no-code come appmaster .io" target="_blank" rel="noopener" data-mce-href="https:// appmaster.io"> AppMaster possono aiutare gli sviluppatori a creare backend , web e applicazioni mobili in modo rapido ed efficiente. Le applicazioni AppMaster possono dimostrare un'eccezionale scalabilità e bassa latenza, rendendole adatte per applicazioni aziendali e scenari ad alto carico. Per esplorare ulteriormente le capacità di AppMaster, appmaster .io" data-mce-href="https: //studio. appmaster.io">crea un account gratuito e sfrutta i suoi potenti strumenti no-code.