Как вы ловите утечки памяти в своих проектах iOS? - PullRequest
0 голосов
/ 04 января 2012

Утечки памяти - частая проблема в проектах iOS.Прибор с утечкой Xcode и статический анализатор не находят их все.Как вы находите утечки?

1 Ответ

0 голосов
/ 05 января 2012

Я разработал lib , который ловит пропущенные объекты и визуализирует их взаимосвязь между собой.

Все взаимодействия происходят через консоль Xcode. Нажмите pause в отладчике Xcode и введите что-то вроде этого:

po [parser run:@"leaks saveGraph /Users/yourName/Documents/dot/mem.txt"]

Команда создает файл mem.txt для точечного инструмента (http://www.graphviz.org/). Точка должна быть установлена. Затем мы можем преобразовать mem.txt в точечный файл с помощью;

dot -Tdot mem.txt -o mem.dot && open ./mem.dot 

Это покажет график с живыми и мертвыми объектами из вашего приложения в текущий момент. Некоторые примеры:

https://github.com/soniccat/memCheck-for-iOS/raw/master/images/pic1.png
https://github.com/soniccat/memCheck-for-iOS/raw/master/images/pic2.png

Стрелка из DetailViewController в UILabel означает, что объект DetailViewController содержит объект UILabel. Пунктирная стрелка показывает, когда объект мертв. Живые объекты имеют белый фон, мертвые объекты - серый фон.

О формате команды синтаксического анализатора и специальном фильтре (fromList), который удаляет все ненужные объекты, которые вы можете прочитать на странице git-концентратора memCheck-for-iOS .

Счастливого использования:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...