iOS - Использование инструмента инструментов для обнаружения утечек - PullRequest
1 голос
/ 27 марта 2019

Так что я пытаюсь найти утечки в моем приложении, используя инструмент утечки.Когда приложение запускается, я вижу 106 утечек, и у меня возникают проблемы с их поиском.

enter image description here

На изображении вы можете увидеть часть списка,но как я могу перейти к классу или строке кода, которые генерируют утечку?

Я что-то упустил?

Спасибо заранее

Ответы [ 3 ]

1 голос
/ 27 марта 2019

Найти утечку не так просто. Вам нужно надеть детективную шапку, вынуть увеличительное стекло из пальто и начать искать след. т.е.

За каждый просочившийся объект существует ответственная библиотека. Если это UIKit, Foundation или что-то низкоуровневое, вы не сможете точно определить местоположение кода, который вызывает утечку, поскольку эти библиотеки имеют форму двоичных файлов.

Если ответственная библиотека - та, которую вы пишете, вы можете перейти к коду, щелкнув правильный метод на панели трассировки стека справа. Подсказка заключается в том, что методы, перечисленные на панели трассировки стека, выделяются, если имеется соответствующий код.

Но, поскольку это не так просто, часто ваш собственный фрагмент кода вызывает утечку внутренней библиотеки, которую трудно отладить. Вы должны пройти некоторые уроки и практические материалы, прежде чем начать. Что-то, конечно, не отвечает на stackoverflow.

1 голос
/ 27 марта 2019

Вы можете увидеть три стека в правой части экрана.И после этого прокручиваем до класса и метода, создающего утечку.Иногда трудно понять, почему у вас утечка.

Взгляните на мое изображение enter image description here

У меня есть TermsViewController, и у меня есть строка NSMuttableAttributed, которая создает утечки памяти.Также, если я выбираю строку с помощью TermsViewController.setupInfoText (), он открывает код.

0 голосов
/ 27 марта 2019

Если вы хотите найти код, распределяющий утечку памяти, переключитесь на представление дерева вызовов с помощью панели перехода.Чтобы найти код в представлении дерева вызовов, инвертируйте представление дерева вызовов и скройте системные библиотеки.

enter image description here

Двойной щелчок по одной из ваших функций впредставление дерева вызовов позволит вам перейти к строке кода, в которой выделена утечка памяти.

Прочтите следующую статью для получения более подробной информации об использовании Инструментов для поиска утечек памяти:

Измерение использования памяти вашего приложения с помощью инструментов

...