Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon jakie są główne przypadki użycia Shenandoah i ZGC


jakie są główne przypadki użycia Shenandoah i ZGC


Główne przypadki użycia Shenandoah i ZGC to:

Shenandoah GC:

1. Niskie opóźnienia: Shenandoah zaprojektowano tak, aby minimalizować czasy przestojów, wykonując większość zadań związanych z usuwaniem elementów bezużytecznych jednocześnie z aplikacją. Dzięki temu aplikacja pozostaje responsywna i działa dobrze nawet przy dużym obciążeniu pamięci.

2. Wysoka przepustowość: Shenandoah zaprojektowano tak, aby zapewniał wysoką przepustowość poprzez minimalizację czasu spędzanego na zbieraniu śmieci. Dzięki temu aplikacja może nadal działać wydajnie nawet przy dużym obciążeniu pamięci.

3. Duże sterty: Shenandoah został zaprojektowany do wydajnej obsługi dużych stert, dzięki czemu nadaje się do aplikacji wymagających dużych alokacji pamięci.

4. Stała alokacja: Shenandoah nadaje się do zastosowań ze stałą alokacją i wykorzystaniem obiektów, ponieważ może sobie z tym skutecznie poradzić.

5. Starsze obiekty: Shenandoah nadaje się do zastosowań, w których obiekty są starsze, a koszty tworzenia nowych obiektów są niewielkie, ponieważ może sobie z tym skutecznie poradzić.

6. Wykorzystanie kontenera: Shenandoah można używać w środowiskach kontenerowych, ale zależy to od konkretnego przypadku użycia.

ZGC:

1. Niskie opóźnienia: ZGC zaprojektowano tak, aby minimalizować czasy przestojów, wykonując większość prac związanych z usuwaniem śmieci jednocześnie z aplikacją. Dzięki temu aplikacja pozostaje responsywna i działa dobrze nawet przy dużym obciążeniu pamięci.

2. Wysoka przepustowość: ZGC został zaprojektowany, aby zapewnić wysoką przepustowość poprzez minimalizację czasu spędzanego na zbieraniu śmieci. Dzięki temu aplikacja może nadal działać wydajnie nawet przy dużym obciążeniu pamięci.

3. Duże sterty: ZGC został zaprojektowany do wydajnej obsługi dużych stert, dzięki czemu nadaje się do aplikacji wymagających dużych alokacji pamięci.

4. NUMA-Aware: ZGC zaprojektowano tak, aby obsługiwał NUMA, co oznacza, że ​​może wydajnie obsługiwać duże sterty i wiele rdzeni procesora.

5. Funkcja eksperymentalna: ZGC jest funkcją eksperymentalną i do jej włączenia wymagane są określone opcje wiersza poleceń. Nadaje się do aplikacji wymagających bardzo krótkich czasów pauzy i może obsługiwać duże alokacje pamięci.

Podsumowując, zarówno Shenandoah, jak i ZGC zostały zaprojektowane tak, aby zapewniać niskie opóźnienia i wysoką przepustowość, dzięki czemu nadają się do zastosowań wymagających wydajnego zarządzania pamięcią.

Cytaty:
[1] https://www.opsian.com/blog/aleksey-shipilev-shenandoah-concurrent-gcs/
[2] https://clojure-goes-fast.com/blog/shenandoah-in-production/
[3] https://wiki.openjdk.org/display/shenandoah/Main
[4] https://www.diva-portal.org/smash/get/diva2:1466940/FULLTEXT01.pdf
[5] https://developers.redhat.com/articles/2024/05/28/beginners-guide-shenandoah-garbage-collector