Журналы G1GC GC что они значат? - PullRequest
4 голосов
/ 08 марта 2011

Я не понимаю, что именно означают журналы GC GC (при добавлении PrintGCDetails и PrintGCTimeStamps) Может кто-нибудь пролить свет на синтаксис?

[

GC pause (young), 0.03067078 secs]
   [SATB Drain Time:   0.2 ms]
   [Parallel Time:  22.6 ms]
      [GC Worker Start Time (ms):  165213430.0  165213430.0  165213430.0  165213430.0  165213430.0  165213430.0  165213430.1  165213430.1]
      [Update RS (ms):  10.7  10.0  11.1  9.9  9.9  11.2  10.6  8.6
       Avg:  10.3, Min:   8.6, Max:  11.2]
         [Processed Buffers : 14 8 8 12 9 11 10 8
          Sum: 80, Avg: 10, Min: 8, Max: 14]
      [Ext Root Scanning (ms):  2.5  2.6  2.9  3.4  3.3  2.7  2.6  2.4
       Avg:   2.8, Min:   2.4, Max:   3.4]
      [Mark Stack Scanning (ms):  0.0  0.0  0.0  0.0  0.0  0.0  0.0  2.2
       Avg:   0.3, Min:   0.0, Max:   2.2]
      [Scan RS (ms):  4.0  4.1  3.1  3.7  3.9  3.2  3.8  3.9
       Avg:   3.7, Min:   3.1, Max:   4.1]
      [Object Copy (ms):  4.7  5.3  4.7  4.8  4.7  4.7  4.8  4.7
       Avg:   4.8, Min:   4.7, Max:   5.3]
      [Termination (ms):  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0
       Avg:   0.0, Min:   0.0, Max:   0.0]
         [Termination Attempts : 23 1 26 23 19 29 22 25
          Sum: 168, Avg: 21, Min: 1, Max: 29]
      [GC Worker End Time (ms):  165213452.3  165213452.3  165213452.3  165213452.3  165213452.3  165213452.3  165213452.3  165213452.3]
      [Other:   0.7 ms]
   [Clear CT:   0.6 ms]
   [Other:   7.3 ms]
      [Choose CSet:   0.0 ms]
   [ 3329M->3245M(6000M)]

А что означает полный сборщик мусора? Это пауза, она распараллелена? какой алгоритм GC используется? Почему G1 решил использовать его?

5.941: [Full GC 7891K->4756K(6000M), 0.1939233 secs]

Ответы [ 3 ]

2 голосов
/ 30 апреля 2011

Немного информации о "Это пауза, она распараллелена?" На языке Java GC бывают двух типов (основанные на параллелизме с мутатором, то есть приложении) - (1) Stop-the-world (2) Concurrent

Остановка мира ГК далее подкатегоризована как - 1a) Остановка мира, если количество потоков ГХ равно 1b) Параллельно, если количество потоков ГХ больше одного

0 голосов
/ 13 февраля 2016

Из оракула Блог g1gc и статья в технической сети

А что означает полный сборщик мусора?

Для G1GC любой объект, размер которого больше половины, считается « Humongous object ».Такой объект выделяется непосредственно в старом поколении в « Humongous region s».These Humongous regions are a contiguous set of regions.

Dead Humongous objects are freed в конце цикла маркировки на этапе очистки, а также во время полного цикла сбора мусора.

Для уменьшения затрат на копирование объекты Humongous не являютсявключается в любую эвакуационную паузу. Полный цикл сбора мусора сжимает на месте огромные объекты.

Обычно Полный GC очищает всю кучу - обаПространства Юнга и Тенира (старого поколения)

С другой стороны, вам нужно беспокоиться о том, сколько времени "потоки приложений были остановлены" независимо от типа GC: Young GC или Full GC и т. Д.

Это пауза, она распараллелена?

YounGC is parallelized but not FullGC

Полные GC: * ​​1051 * Currently G1 full gc is single threaded and very slow, мы должны стараться избегать полных gcs как можно больше (из статьи oracle )

Какой алгоритм GC используется?

Вы имеете в виду Young GC / Major GC / Full GC?Из ваших логов это Full GC для последней строки и YounGC для первой строки.

Почему G1 решил использовать его?

Объясняется в ответ на первый запрос.

Относительно тонкой настройки G1GC, посмотрите на оракула артикул и связанных с ним SE вопрос

0 голосов
/ 08 марта 2011

Ниже приведено прочтение между строк (довольно ограниченного) материала, который я мог найти в Интернете на G1 GC.(Есть статья 2004 года за платным экраном, слайд-шоу из JavaWorld 2008 и страница G1 GC . Если у кого-то есть другие ссылки, пожалуйста, добавьте их.)

И чтоозначает полный сборщик мусора?

Как и в случае с другими ГХ HotSpot, куча делится на пространство Нового или Эдема, пространство (ы) Выжившего и пространство Старого или Наемного объекта.Однако, в отличие от других GC HotSpot, G1 использует несколько областей для хранения пробелов.

Обычно сборщик G1 работает постепенно, параллельно с потоками приложения, отслеживая и «эвакуируя» объекты в другие регионы.Однако, похоже, что сборщик может иногда отставать настолько, что ему приходится все останавливать и использовать все доступные процессоры для сбора всех областей кучи.Я думаю, что это полный сборщик мусора.

Это пауза, она распараллелена?

Я думаю, что это распараллелено, но и остановит мир.

Какой алгоритм GC используется?

Не понятно.

Почему G1 решил использовать его?

См. Выше.Это слишком далеко позади, и куча была полна мусора.

...