[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-kakie-raznovidnosti-sborshchikov-musora-realizovany-v-virtualnoy-mashine-hotspot":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":22,"progress":23,"seo":24},52,"kakie-raznovidnosti-sborshchikov-musora-realizovany-v-virtualnoy-mashine-hotspot",2,"java-core","Java Core","☕","Какие разновидности сборщиков мусора реализованы в виртуальной машине HotSpot?","Java HotSpot VM предоставляет разработчикам на выбор четыре различных сборщика мусора:\n\n+ **Serial (последовательный)** — самый простой вариант для приложений с небольшим объемом данных и не требовательных к задержкам. На данный момент используется сравнительно редко, но на слабых компьютерах может быть выбран виртуальной машиной в качестве сборщика по умолчанию. Использование Serial GC включается опцией `-XX:+UseSerialGC`.\n+ **Parallel (параллельный)** — наследует подходы к сборке от последовательного сборщика, но добавляет параллелизм в некоторые операции, а также возможности по автоматической подстройке под требуемые параметры производительности. Параллельный сборщик включается опцией `-XX:+UseParallelGC`.\n+ **Concurrent Mark Sweep (CMS)** — нацелен на снижение максимальных задержек путем выполнения части работ по сборке мусора параллельно с основными потоками приложения. Подходит для работы с относительно большими объемами данных в памяти. Использование CMS GC включается опцией `-XX:+UseConcMarkSweepGC`.\n+ **Garbage-First (G1)** — создан для замены CMS, особенно в серверных приложениях, работающих на многопроцессорных серверах и оперирующих большими объемами данных. G1 включается опцией Java `-XX:+UseG1GC`. Начиная с Java 9, G1 является сборщиком мусора по умолчанию.\n+ **ZGC (Z Garbage Collector)** — сборщик мусора с низкой задержкой, появившийся как экспериментальный в Java 11 и ставший продакшен-готовым начиная с Java 15. ZGC обеспечивает паузы менее 1 миллисекунды (sub-millisecond) независимо от размера кучи, поддерживает кучи от 8 МБ до 16 ТБ. Включается опцией `-XX:+UseZGC`.\n+ **Shenandoah** — сборщик мусора с низкой задержкой, разработанный Red Hat. Как и ZGC, выполняет большую часть работы по сборке мусора параллельно с потоками приложения, обеспечивая предсказуемо низкие паузы. Включается опцией `-XX:+UseShenandoahGC`.\n\n> **Примечание:** Сборщик CMS (Concurrent Mark Sweep) был объявлен устаревшим (deprecated) начиная с Java 9 (JEP 291) и полностью удалён в Java 14 (JEP 363).","","middle",[15,16,17,18,19,20,21],"JVM","core","garbage-collector","ZGC","G1","HotSpot","GC",[],null,{"title":25,"description":26,"ogTitle":27,"ogDescription":28,"keywords":29,"schemaAnswer":35,"featuredSnippetReady":36},"Виды сборщиков мусора в HotSpot JVM: Serial, Parallel, G1, ZGC — Gymterview","HotSpot JVM предоставляет сборщики мусора: Serial, Parallel, CMS (удалён в Java 14), G1 (по умолчанию с Java 9), ZGC и Shenandoah.","Виды Garbage Collector в HotSpot JVM","Serial, Parallel, G1 (default с Java 9), ZGC (sub-millisecond паузы), Shenandoah. CMS удалён в Java 14.",[30,31,32,33,34],"сборщики мусора HotSpot","G1 GC Java","ZGC Java","Serial Parallel CMS","виды GC Java","В HotSpot VM реализованы: Serial — простой последовательный сборщик; Parallel — параллельный с автоподстройкой; CMS (Concurrent Mark Sweep) — deprecated с Java 9, удалён в Java 14; G1 (Garbage-First) — сборщик по умолчанию с Java 9, для серверных приложений; ZGC — сборщик с паузами менее 1 мс, поддерживает кучу до 16 ТБ (продакшен с Java 15); Shenandoah — сборщик с низкой задержкой от Red Hat.",true]