Основні варіанти використання Shenandoah і ZGC:
Шенандоа ГК:
1. Низька затримка: Shenandoah розроблено для мінімізації часу пауз, виконуючи більшу частину роботи зі збирання сміття одночасно з програмою. Це гарантує, що програма залишатиметься чуйною та добре працюватиме навіть при інтенсивному використанні пам’яті.
2. Висока пропускна здатність: Shenandoah розроблено для забезпечення високої пропускної здатності шляхом мінімізації часу, витраченого на збирання сміття. Це гарантує ефективну роботу програми навіть при інтенсивному використанні пам’яті.
3. Великі купи: Shenandoah розроблено для ефективної обробки великих куп, що робить його придатним для додатків, які вимагають великого розподілу пам’яті.
4. Постійне виділення: Shenandoah підходить для додатків із постійним розподілом і використанням об’єктів, оскільки він може це ефективно обробляти.
5. Старіші об’єкти: Shenandoah підходить для додатків, де об’єкти старіші, а накладні витрати на створення нових об’єктів невеликі, оскільки він може впоратися з цим ефективно.
6. Використання контейнера: Shenandoah можна використовувати в контейнерних середовищах, але це залежить від конкретного випадку використання.
ZGC:
1. Низька затримка: ZGC розроблено для мінімізації часу пауз, виконуючи більшу частину роботи зі збирання сміття одночасно з програмою. Це гарантує, що програма залишатиметься чуйною та добре працюватиме навіть при інтенсивному використанні пам’яті.
2. Висока пропускна здатність: ZGC розроблено для забезпечення високої пропускної здатності шляхом мінімізації часу, витраченого на збирання сміття. Це гарантує ефективну роботу програми навіть при інтенсивному використанні пам’яті.
3. Великі купи: ZGC розроблено для ефективної роботи з великими купами, що робить його придатним для додатків, які потребують великого розподілу пам’яті.
4. NUMA-Aware: ZGC розроблено для підтримки NUMA, що означає, що він може ефективно обробляти великі купи та кілька ядер ЦП.
5. Експериментальна функція: ZGC є експериментальною функцією, для ввімкнення якої потрібні спеціальні параметри командного рядка. Він підходить для додатків, які потребують дуже короткого часу паузи та можуть обробляти великий розподіл пам’яті.
Таким чином, і Shenandoah, і ZGC розроблені для забезпечення низької затримки та високої пропускної здатності, що робить їх придатними для програм, які потребують ефективного керування пам’яттю.
цитати:[1] https://www.opsian.com/blog/aleksey-shipilev-shenandoah-concurrent-gcs/
[2] https://cljure-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