Сообщения Журнала Сборки "мусора" Java

В последней версии 1.2 образца GenericKeychain компания Apple предоставляет оболочку для ключей, которая также работает на iPhone Simulator. За подробностями обращайтесь к этой статье: http://dev-metal.blogspot.com/2010/08/howto-use-keychain-in-iphone-sdk-to.html

94
задан Vadim Kotov 18 September 2017 в 08:30
поделиться

2 ответа

Большая часть этого объясняется в Руководстве по настройке сборщика мусора (которое вам в любом случае следует прочитать).

Параметр командной строки -verbose: gc заставляет выводить информацию о куче и сборке мусора при каждой сборке. Например, вот вывод из большого серверного приложения:

  [GC 325407K-> 83000K (776768K), 0,2300771 с]
[GC 325816K-> 83372K (776768K), 0,2454258 с]
[Полный GC 267628K-> 83769K (776768K), 1,8479984 с]

Здесь мы видим две второстепенные коллекции, за которыми следует одна большая коллекция. Цифры до и после стрелки (например, 325407K-> 83000K из первой строки) указывают объединенный размер живых объектов до и после сборки мусора, соответственно. После небольших коллекций размер включает в себя некоторые объекты, которые являются мусором (больше не живы), но не могут быть восстановлены. Эти объекты либо содержатся в существующем поколении, либо ссылаются на временное или постоянное поколение.

Следующее число в скобках (например, (776768K) ​​ снова из первой строки) - это зафиксированный размер кучи: объем пространства, который можно использовать для объектов Java без запроса дополнительной памяти у операционной системы. . Обратите внимание, что это число не включает одну из ячеек выживших, поскольку только один из них может использоваться в любой момент времени, а также не включает постоянную генерацию, которая содержит метаданные, используемые виртуальной машиной.

Последний элемент в строке (например, 0,2300771 сек ) указывает время, необходимое для выполнения сбора; в этом случае примерно четверть секунды.

Формат основной коллекции в третьей строке аналогичен.

Формат вывода, производимого -verbose: gc , может быть изменен в будущих выпусках.

Я не уверен, почему в вашем PSYoungGen; вы меняли сборщик мусора?

в этом случае примерно четверть секунды.

Формат основной коллекции в третьей строке аналогичен.

Формат вывода, производимого -verbose: gc , может быть изменен в будущих выпусках.

Я не уверен, почему в вашем PSYoungGen; вы меняли сборщик мусора?

в этом случае примерно четверть секунды.

Формат основной коллекции в третьей строке аналогичен.

Формат вывода, производимого -verbose: gc , может быть изменен в будущих выпусках.

Я не уверен, почему в вашем PSYoungGen; вы меняли сборщик мусора?

90
ответ дан 24 November 2019 в 06:01
поделиться
  1. PSYoungGen относится к сборщику мусора, используемому для второстепенной сборки. PS означает Parallel Scavenge.
  2. Первый набор чисел - это размеры до / после молодого поколения, а второй набор - для всей кучи. ( Диагностика проблемы сборки мусора подробно описывает формат)
  3. Имя указывает генерацию и рассматриваемый сборщик, второй набор предназначен для всей кучи.

Также показан пример связанного полного GC. сборщики, используемые для старых и постоянных поколений:

3.757: [Full GC [PSYoungGen: 2672K->0K(35584K)] 
            [ParOldGen: 3225K->5735K(43712K)] 5898K->5735K(79296K) 
            [PSPermGen: 13533K->13516K(27584K)], 0.0860402 secs]

Наконец, разбив одну строку вашего примера вывода журнала:

8109.128: [GC [PSYoungGen: 109884K->14201K(139904K)] 691015K->595332K(1119040K), 0.0454530 secs]
  • 107Mb , использовавшиеся до GC, 14Mb , используемые после GC, max молодое поколение размер 137 Мб
  • 675 Мб куча, используемая до GC, 581Mb куча, используемая после GC, 1 ГБ максимальный размер кучи
  • второстепенный сборщик мусора произошел 8109,128 секунд с момента запуска JVM и занял 0,04 секунды
127
ответ дан 24 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: