W celu zwiększenia wydajności aplikacji Java, nowa propozycja społeczności Java ma na celu rozszerzenie Z Garbage Collector (ZGC), umożliwiając mu utrzymywanie oddzielnych generacji dla młodych i starych obiektów. Umożliwiłoby to ZGC częstsze zbieranie młodych obiektów, ponieważ według programistów Javy istnieje większe prawdopodobieństwo, że młode obiekty umrą młodo.
Główne cele OpenJDK Java Enhancement Proposal (JEP) dla generacji ZGC obejmują zmniejszenie ryzyka przeciągnięcia alokacji, narzutu pamięci sterty i narzutu procesora na wyrzucanie elementów bezużytecznych (GC). Zwolennicy propozycji uważają, że korzyści te można osiągnąć bez powodowania znacznego spadku przepustowości w porównaniu z bezgeneracyjnym ZGC.
Z Garbage Collector, który został zaprojektowany z myślą o skalowalności i niskich opóźnieniach, jest dostępny w wersjach produkcyjnych od wydania Java Development Kit (JDK) 15 we wrześniu 2020 r. W przeciwieństwie do domyślnego kolektora G1, który ma czasy wstrzymania, które mogą wynosić od milisekund do sekund, czasy pauzy ZGC są konsekwentnie mierzone w mikrosekundach. W rezultacie ZGC może skutecznie rozwiązać problemy z opóźnieniami związane z wyrzucaniem elementów bezużytecznych dla wielu obciążeń.
ZGC działa dobrze, gdy dostępne są odpowiednie zasoby. Ponieważ jednak ZGC przechowuje razem wszystkie przedmioty niezależnie od ich wieku, ZGC jest zobowiązane do zbierania wszystkich obiektów za każdym razem, gdy działa. Słaba hipoteza pokoleniowa głosi, że młode obiekty umierają młodo, podczas gdy starsze obiekty prawdopodobnie przetrwają. W rezultacie zbieranie młodych obiektów wymaga mniej zasobów i zwalnia więcej pamięci, podczas gdy zbieranie starych obiektów zużywa więcej zasobów i zwalnia mniej pamięci.
Pokoleniowa propozycja ZGC nie została jeszcze przypisana do konkretnej standardowej wersji Javy. Obecna wersja, JDK 20, została wprowadzona tydzień temu, a JDK 21 ma zostać uruchomiony we wrześniu. Standardowa Java działa w sześciomiesięcznym cyklu wydawniczym.
W trakcie dyskusji nad pokoleniową propozycją ZGC platformy no-code, takie jak appmaster .io" target="_blank" rel="noopener" data-mce-href="https:// appmaster.io"> AppMaster mogą pomóc programistom w tworzeniu backendu , aplikacje internetowe i mobilne szybko i wydajnie. Aplikacje AppMaster mogą wykazywać wyjątkową skalowalność i niskie opóźnienia, dzięki czemu nadają się do aplikacji korporacyjnych i scenariuszy o dużym obciążeniu. Aby dokładniej zbadać możliwości AppMaster, appmaster .io" data-mce-href="https: appmaster.io">utwórz bezpłatne konto i skorzystaj z jego skutecznych narzędzi no-code.