Galvenie Shenandoah un ZGC lietošanas gadījumi ir:
Shenandoah GC:
1. Zems latentums: Shenandoah ir paredzēts, lai samazinātu pauzes laiku, veicot lielāko daļu atkritumu savākšanas darbu vienlaikus ar lietojumprogrammu. Tas nodrošina, ka lietojumprogramma paliek atsaucīga un labi darbojas pat intensīvas atmiņas izmantošanas gadījumā.
2. Augsta caurlaidspēja: Shenandoah ir izstrādāta, lai nodrošinātu augstu caurlaidspēju, samazinot atkritumu savākšanai pavadīto laiku. Tas nodrošina, ka lietojumprogramma var turpināt darboties efektīvi pat tad, ja tiek izmantota liela atmiņa.
3. Lielas kaudzes: Shenandoah ir izstrādāta, lai efektīvi apstrādātu lielas kaudzes, padarot to piemērotu lietojumprogrammām, kurām nepieciešams liels atmiņas piešķīrums.
4. Pastāvīga piešķiršana: Shenandoah ir piemērota lietojumprogrammām ar pastāvīgu objektu piešķiršanu un izmantošanu, jo tā var to efektīvi apstrādāt.
5. Vecāki objekti: Shenandoah ir piemērots lietojumprogrammām, kurās objekti ir vecāki un jaunu objektu izveides izmaksas ir nelielas, jo tā var efektīvi rīkoties.
6. Konteinera lietošana: Shenandoah var izmantot konteineru vidē, taču tas ir atkarīgs no konkrētā lietošanas gadījuma.
ZGC:
1. Zems latentums: ZGC ir paredzēts, lai samazinātu pauzes laiku, veicot lielāko daļu atkritumu savākšanas darbu vienlaikus ar lietojumprogrammu. Tas nodrošina, ka lietojumprogramma paliek atsaucīga un labi darbojas pat intensīvas atmiņas izmantošanas gadījumā.
2. Augsta caurlaidspēja: ZGC ir paredzēts, lai nodrošinātu augstu caurlaidspēju, samazinot atkritumu savākšanai pavadīto laiku. Tas nodrošina, ka lietojumprogramma var turpināt darboties efektīvi pat tad, ja tiek izmantota liela atmiņa.
3. Lielas kaudzes: ZGC ir izstrādāts, lai efektīvi apstrādātu lielas kaudzes, tāpēc tas ir piemērots lietojumprogrammām, kurām nepieciešams liels atmiņas piešķīrums.
4. NUMA-Aware: ZGC ir izstrādāts tā, lai tas atbilstu NUMA, kas nozīmē, ka tas var efektīvi apstrādāt lielas kaudzes un vairākus CPU kodolus.
5. Eksperimentālā funkcija: ZGC ir eksperimentāls līdzeklis, un, lai to iespējotu, ir nepieciešamas īpašas komandrindas opcijas. Tas ir piemērots lietojumprogrammām, kurām nepieciešams ļoti īss pauzes laiks, un tās var apstrādāt lielu atmiņas piešķīrumu.
Rezumējot, gan Shenandoah, gan ZGC ir izstrādāti, lai nodrošinātu zemu latentumu un augstu caurlaidspēju, padarot tos piemērotus lietojumprogrammām, kurām nepieciešama efektīva atmiņas pārvaldība.
Citāts:[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