В чем разница между опциями G1GC -XX: ParallelGCThreads и -XX: ConcGCThreads - PullRequest
0 голосов
/ 10 января 2019

при настройке G1GC у нас есть 2 вида подсчета потоков -XX: ParallelGCThreads и -XX: ConcGCThreads какая разница, как они будут влиять, любая ссылка приветствуется.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Алгоритм G1 имеет фазы, некоторые из которых являются фазами «остановить мир», которые останавливают приложение во время сбора мусора, а также фазы, которые происходят одновременно во время работы приложения (маркировка кандидатов и т. Д.), С этой информацией в разум:

Параметр

ParallelGCThreads влияет на количество потоков, используемых для фаз, когда потоки приложения остановлены, а флаг ConcGCThreads влияет на количество потоков, используемых для одновременных фаз.

0 голосов
/ 10 января 2019

Это настройка или, точнее сказать, настройки настройки JVM ... мы сообщаем JVM использовать сколько потоков в этом конкретном типе сборки мусора.

Надеюсь, вы уже знаете, что такое сборщик мусора, поэтому, когда JVM запускает сборку мусора, это зависит от того, какой алгоритм установлен для вашей JVM в качестве сборщика по умолчанию.

Возможно, вы уже знаете, что существуют различные виды сборщиков мусора, такие как G1, CMS и т. Д.

Итак, в зависимости от ваших настроек (здесь количество потоков) алгоритм GC попытается использовать столько потоков для очистки кучи. Пока JVM выполняет FULL GC, он останавливает обработку других потоков.

Теперь предположим, что ваше приложение работает и выполняет очень тяжелые задачи, несколько пользователей используют его для разных целей (скажем, очень загруженное приложение), а JVM теперь запускает FULL GC, тогда в этом случае все рабочие потоки остановятся. и GC будет убирать. В этот период, если все потоки будут получены JVM, пользователь увидит задержку ответа. Таким образом, вы можете сказать JVM: «Используйте только столько, сколько (число) потоков на такого типа (CMS или Parallel) мусора» сбор коллекции.

Чтобы узнать больше о типах GC и их различиях, в зависимости от ваших потребностей, обратитесь к хорошей статье и документам из Oracle.

Вот одна ссылка на упомянутые вами опции.

-XX: ParallelGCThreads: Устанавливает количество потоков, используемых во время параллельных фаз сборщиков мусора. Значение по умолчанию зависит от платформы, на которой работает JVM.

-XX: ConcGCThreads: Количество потоков, которые будут использовать одновременные сборщики мусора. Значение по умолчанию зависит от платформы, на которой JVM работает.

...