Как использовать: Инструмент анализатора памяти: объединить кратчайший путь к корням ГХ: исключить настраиваемое поле? - PullRequest
0 голосов
/ 07 февраля 2019

You get this popup.

Однако я не могу понять, что положить в -excludes.Я попытался добавить все четыре ниже, и я все еще вижу ссылку, которую я не хочу от ClassName.nameOfFieldInClass!

  1. org.package.ClassName
  2. org.package.ClassName: referent
  3. org.package.ClassName: nameOfFieldInClass
  4. ClassName: nameOfFieldInClass

и в нем по-прежнему отображаются ссылки, которые я не хочу видеть!Документация не очень помогает из всплывающего окна: «Поля определенных классов, которые следует игнорировать при поиске путей. Например, это позволяет игнорировать пути через ссылки со слабой или мягкой ссылкой».

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

Что я добавляю в-excludes?

Просматривая исходный код openjdk , я вижу, что и WeakReference, и SoftReference имеют частное поле референта.В результате, -exclude должно быть (fullClassName) :( variableName).Теперь мне просто нужно выяснить, почему это не работает в моей куче.Может быть, для статического поля соглашение другое?

1 Ответ

0 голосов
/ 07 февраля 2019

Ах, это расстраивает.Это работало, когда у меня было только (обратите внимание, нет поля / переменной):

  1. java.lang.ref.WeakReference: referent
  2. java.lang.ref.SoftReference: referent
  3. org.my.ClassName

Однако, когда я использовал приведенные ниже исключения, я получил как-то БОЛЬШЕ результатов, даже если запрос более строгий!

  1. java.lang.ref.WeakReference: referent
  2. java.lang.ref.SoftReference: referent
  3. org.my.ClassName
  4. org.my.ClassName2
...