Um die Leistung von Java-Anwendungen zu verbessern, versucht ein neuer Vorschlag innerhalb der Java-Community, den Z Garbage Collector (ZGC) zu erweitern, sodass er getrennte Generationen für junge und alte Objekte verwalten kann. Dies würde es ZGC ermöglichen, junge Objekte häufiger zu sammeln, da junge Objekte laut Java-Entwicklern eine höhere Wahrscheinlichkeit haben, jung zu sterben.
Die Hauptziele des OpenJDK Java Enhancement Proposal (JEP) für ZGC der Generation beinhalten die Reduzierung von Allokationsverzögerungsrisiken, Heap-Speicher-Overhead und Garbage-Collection (GC)-CPU-Overhead. Die Befürworter des Vorschlags glauben, dass diese Vorteile erzielt werden können, ohne dass es zu einer signifikanten Verringerung des Durchsatzes im Vergleich zu ZGC ohne Generation kommt.
Der auf Skalierbarkeit und niedrige Latenz ausgelegte Z Garbage Collector ist seit dem Java Development Kit (JDK) 15 im September 2020 in Produktionsversionen verfügbar. Im Gegensatz zum standardmäßigen G1-Collector, der Pausenzeiten hat, die im Millisekundenbereich liegen können auf Sekunden, ZGC Pausenzeiten werden durchgehend in Mikrosekunden gemessen. Folglich kann ZGC Latenzprobleme im Zusammenhang mit der Garbage Collection für viele Workloads effektiv lösen.
ZGC funktioniert gut, wenn ausreichende Ressourcen verfügbar sind. Da jedoch alle Gegenstände unabhängig von ihrem Alter zusammen aufbewahrt werden, muss ZGC bei jedem Betrieb alle Gegenstände einsammeln. Die schwache Generationshypothese besagt, dass junge Objekte dazu neigen, jung zu sterben, während ältere Objekte wahrscheinlich bestehen bleiben. Folglich erfordert das Sammeln junger Objekte weniger Ressourcen und gibt mehr Speicher frei, während das Sammeln alter Objekte mehr Ressourcen verbraucht und weniger Speicher freigibt.
Der Generationen- ZGC Vorschlag ist noch keiner bestimmten Standard-Java-Version zugeordnet. Das aktuelle Release, JDK 20, wurde vor einer Woche vorgestellt, JDK 21 soll im September auf den Markt kommen. Standard-Java arbeitet mit einem sechsmonatigen Veröffentlichungsrhythmus.
Während der Generations- ZGC Vorschlag diskutiert wird, können no-code Plattformen wie appmaster .io" target="_blank" rel="noopener" data-mce-href="https:// appmaster.io"> AppMaster Entwicklern beim Aufbau von Backends helfen , Web- und Mobilanwendungen schnell und effizient. AppMaster Anwendungen können eine hervorragende Skalierbarkeit und geringe Latenz aufweisen, wodurch sie für Unternehmensanwendungen und Hochlastszenarien geeignet sind. Um die Funktionen von AppMaster weiter zu erkunden, appmaster .io" data-mce-href="https: appmaster.io">erstellen Sie ein kostenloses Konto und profitieren Sie von seinen starken no-code Tools.