Последовательный коллектор
В основном для станка с одним процессором.
Алгоритм:
Для обработки кучи используется один поток,и выполнить паузу остановки мира во время любого gc.Просто посмотри на это как на игрушку.
Это значение по умолчанию для компьютера клиентского класса (32-разрядная версия JVM для Windows или компьютера с одним процессором) .
Параллельный коллектор
Алгоритм:
Он использует несколько потоков gc для обработки кучи и выполнения остановки мира во время любого gc.
<= Java <code>8, это по умолчаниюдля машины серверного класса (многопроцессорная Unix-подобная машина или любая 64-битная jvm).
CMS-сборщик
Предназначена для устранения длительной паузы, связанной с полным gc параллели& serial collector.
Алгоритм:
Он использует 1 или более потоков gc для периодического сканирования старого поколения и удаления неиспользуемых объектов, пауза очень короткая, ноиспользуйте больше времени процессора.
сборщик G1
Это gc с низкой паузой / стилем сервера, в основном для большой кучи (> 4 Гб).
Алгоритм:
- Подобно CMS, он использует несколько фоновых потоков gc для сканирования и очистки кучи.
- Itразделив старое поколение на части, можно было бы очистить старое поколение путем копирования из 1 части в другую.
Таким образом, получить фрагментацию меньше возможно.
Начиная с Java 9
, это значение по умолчанию для сервера-класс-машина (многопроцессорная Unix-подобная машина или любая 64-битная jvm).
Зачем использовать G1 по умолчанию?
Основная причина заключается в сокращении времени паузы gc, хотяобщая пропускная способность может быть уменьшена.