Как вы обнаруживаете утечки памяти на iPhone?


Answers

Измените представление на «Расширенная деталь» на панели инструментов. Это покажет вам трассировку стека каждого просочившегося объекта после остановки записи и выбора просочившегося объекта.

Вы видите вызовы в API, но то, что вас интересует, - это поиск последнего метода вашего приложения до вызова API, то есть утечка.

Совет: включите «собирать содержимое памяти» в виде утечек. Наблюдение значений объекта также должно помочь найти, где проблема.

Вам не нужны утечки. 100 утечек не типичны (по крайней мере, в моих приложениях;) Типичным должно быть 0.

Question

Я использую функцию Leaks Instruments с помощью Xcode, чтобы (попытаться и) найти утечки памяти. Я до сих пор не понял, как использовать эту программу. Я нажимаю «Утечки» в программе и вижу, как увеличивается количество памяти в симуляторе. Появилась панель расширенной детали. Единственное, что в области расширенной детали, которая ссылается на мое приложение, является основным. Как и в основном методе, разработанном Xcode. Все остальное - UIKit, Foundations и другие классы SDK, которые я не писал. Что я делаю неправильно, что ничего не появляется из моего приложения?

До того, как я ударил 3 минуты, есть более 100 утечек на 2.5k. Это распространено?







Одним из лучших способов обнаружения утечек памяти является Select Product-> Analyze. В левом Xcode показывается, в каком файле происходит утечка памяти. Какая переменная вызывает утечку памяти. Это один из лучших способов найти утечки памяти.




Run -> Start with Performance Tool -> Leaks



Используйте статический анализатор LLVM / Clang.




Xcode: run -> Начать с Performance Tool -> Утечки