Что представляют собой цвета элементов дерева ссылок HP Studio для Android Studio?

Может ли кто-нибудь сказать мне, что означает полужирный, синий и красный позиции в HPROF Viewer в Android Studio?

Я спрашиваю об одной в панели "Дерево ссылок".

Полужирный

Синий элемент

Красный элемент

С уважением.

Ответы

Ответ 1

Я не могу найти документацию по этому поводу, но, просмотрев несколько кучи кучи, они выглядят так:

  • blue - ближайший dominator экземпляр, выбранный в верхней правой панели.
  • bold - корень GC, например экземпляр с глубиной 0, который не следует собирать. В этом ответе содержится дополнительная информация о том, что такое корень GC, а этот ответ перечисляет типы вещей, которые корни.
  • red - Я на самом деле не видел их, но я бы предположил, что это указывает на экземпляр, который должен быть собран мусором, но еще не был.

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

Ответ 2

  • this$0 (красный) - это переменная, которая содержит ссылку на LeakActivity. В вашем случае это неявная ссылка на охватывающий класс. Это характер анонимных внутренних классов в Java - они неявно содержат ссылку на внешний (охватывающий) класс.

  • имя синего класса - это просто переменная this$0.

Таким образом, практически то, что вы видите, - это LeakActivity, которое неявно ссылается на LeakAsyncTask, которое реализовано как анонимный внутренний класс внутри LeakActivity, поэтому LeakActivity не может быть собрано мусором до тех пор, пока LeakAsyncTask не будет закончен. Таким образом, у вас есть потенциальная утечка активности, которая действительно опасна для вашего приложения.