Неизвестная утечка памяти - PullRequest
1 голос
/ 19 декабря 2011

Я анализирую приложение iOS для проверки утечки памяти с помощью Instruments. Я выбрал распределение и / или утечку для проверки.

Когда приложение запускается, All Allocations увеличивается до 1,3 МБ. После того, как я нажимаю на кнопку, показываю сборщик, затем выбираю элемент и удаляю сборщик, все распределения увеличиваются. Я проверил, что нет явной утечки памяти, так как нет красной панели.

Есть какая-нибудь подсказка? Я обнаружил, что есть много неизвестных 16 байт Malloc, ... 32 байта Malloc, ... но я не могу найти полезную информацию для отслеживания.

Есть ли другие способы решения таких проблем?

1 Ответ

1 голос
/ 19 декабря 2011

Используйте Heapshot, чтобы найти разрыв в памяти, см .: bbum blog

По существу, существует метод запуска инструмента выделения инструментов, создания кучи, запуска интуиции вашего кода и повторения еще одного кучи3 или 4 раза.Это будет указывать на память, которая выделена и не освобождена во время итераций.

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

Если вам нужно увидеть, где происходят сохранения, релизы и авто-релизыдля объекта используйте инструменты:

Запустите инструменты, в Allocations включите «Record reference counts on» (вы должны остановить запись, чтобы установить опцию).Заставьте сборщик запустить, остановить запись, найти там ivar (datePickerView), выполнить детализацию, и вы сможете увидеть, где произошли все сохранения, выпуски и автоматические выпуски.

enter image description here

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