Понимание метрики «Выжившие поколения» - PullRequest
5 голосов
/ 17 февраля 2012

Средство мониторинга памяти Netbeans (которое на самом деле является встроенным VisualVm , тем же инструментом, что и VisualVm) имеет интересную метрику для отслеживания утечек памяти: Метрика выживших поколений.

A определение этой метрики можно найти на oracle.com:

  • Генерация - это набор экземпляров, созданных в одном интервале GC (между двумя сборками мусора)
  • Выжившее поколение - это поколение, которое пережило хотя бы одну сборку мусора.Число выживших сборок мусора - возраст поколения - является его уникальным идентификатором.
  • Значение Surviving Generations (метрики) - это количество различных выживших поколений, которые в данный момент живы в куче (количество поколений с разными возрастами поколений).

У меня вопрос по поводу второго определения.Я знаю, что значит для экземпляра выживание при сборе мусора.Но я не уверен, что значит для поколения пережить сборку мусора.Означает ли это, что хотя бы один экземпляр поколения переживает сборку мусора?

1 Ответ

4 голосов
/ 18 февраля 2012

Да. В основном это означает, что среди экземпляров, которые были созданы между сборкой мусора X и X + 1, есть некоторые, которые сейчас живы, когда произошло больше сборок мусора.

На мой взгляд, все три определения имеют смысл только для каждого класса. Я имею в виду, что значение «Выжившие поколения (метрики)» данного класса - это число различных поколений этого класса, которые теперь живут в куче.

...