PS MarkSweep - это сборщик мусора
моя версия jdk:
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Это мой тестовый код :
List<GarbageCollectorMXBean> beans = ManagementFactory.getGarbageCollectorMXBeans();
for (GarbageCollectorMXBean bean : beans) {
System.out.println(bean.getName());
}
результат :
PS Scavenge
PS MarkSweep
Я знаю, что PS Scavenge-это "параллельный мусор" сборщика мусора молодого поколения, "PS MarkSweep" - это который, это "параллельный старый"?
1 ответов
в интересах тех, кто еще находит этот вопрос, здесь есть отличный обзор:
http://www.fasterj.com/articles/oraclecollectors1.shtml
процитировать соответствующие части для этого вопроса:
коллекционеры молодого поколения
копировать (включено с-XX:+UseSerialGC)
коллектор последовательных копий использует один поток для копирования уцелевших объектов из Eden в уцелевшие пространства и между пространствами выживших, пока он не решит, что они там уже давно. достаточно, и в этот момент он копирует их в старое поколение.PS Scavenge (включено с-XX:+UseParallelGC)
параллельный сборщик мусора, как и сборщик копий, но использует несколько потоков параллельно и имеет некоторые знания о том, как старое поколение собранный (по существу написанный для работы с серийным и PS old gen коллекционеры.)ParNew (включено с-XX:+UseParNewGC)
коллектор параллельного копирования, как и коллектор копирования, но использует несколько потоков в параллельный и имеет внутренний "обратный вызов", который позволяет старому поколению коллектор для работы с объектами, которые он собирает (действительно написан работа с параллельным коллектором).G1 молодое поколение (включено с-XX:+UseG1GC)
сборщик мусора первый, использует "мусор первый" алгоритм, разделяющий куча на множество меньших пространств, но они все еще разделены в Эдем и выжившие пространства в молодом поколении для G1.коллекционеры старого поколения
MarkSweepCompact (включено с-XX:+UseSerialGC)
серийный сборник метк-стреловидности, папа их всех, использует серийное (одно поток) полный алгоритм сбора мусора метк-стреловидности, с опционным уплотнение.PS MarkSweep (включено с-XX:+UseParallelOldGC)
параллельный сборник метк-стреловидности scavenge, распараллеленная версия (т. е. пользы несколько потоков) MarkSweepCompact.ConcurrentMarkSweep (включено с-XX:+UseConcMarkSweepGC)
параллельный коллектор, алгоритм сборки мусора, который пытается выполните большую часть работы по сбору мусора в фоновом режиме без остановка потоков приложений во время он работает (есть еще фазы где он должен остановить потоки приложений, но эти фазы старался быть сведенным к минимуму). Если параллельный сборщик не удается идти в ногу с мусором, он переходит к последовательному Коллектор MarkSweepCompact для (только) следующего GC.смешанное поколение G1 (включено с-XX:+UseG1GC)
первый сборщик мусора использует алгоритм "мусор первый", который разбивается куча на много меньше пространства.