Тестирование с использованием инструмента Leaks должно быть частью вашей стратегии, но не всем. Вам захочется протестировать ваше приложение под разными углами.
Моя стратегия, направленная на тестирование, направлена в первую очередь на функциональное тестирование, затем тесты производительности, а затем последний раунд функциональных тестов. В настройке производительности нет особого смысла, если в вашем коде есть ошибка, вызывающая сбой, за исключением случаев, когда сбой вызван исчерпанием ресурсов.
Забейте приложение, чтобы оно сломалось, выполнив каждую опцию при всех возможных условиях. Если это проходит, я обычно использую свой тест «сумасшедшая обезьяна на трещину», где я нажимаю случайные кнопки и области на экране так быстро, как могу, чтобы увидеть, выставляю ли я дальнейшие аварии.
Только тогда я перехожу к инструментам. Запустите приложение на устройстве (в симуляторе не нужно настраивать производительность), используя инструменты Time Profiler и Memory Monitor. Ищите как горячие точки производительности и скачки памяти, так и накопления памяти. Повторите то же самое тестирование, которое вы использовали для функциональных проблем ранее, делая это.
Как только вы разберетесь с горячими точками и очевидными накоплениями, вы можете перейти к более детальному исследованию памяти. Я на самом деле предпочитаю использовать инструмент Object Allocations с его новой возможностью анализа heapshot инструменту Leaks для обнаружения незначительных накоплений памяти и утечек. Инструмент Leaks имеет тенденцию быть консервативным и может пропустить некоторые наращивания. Натаниэль указывает на превосходную запись Билла Бумгарнера на эту тему.
Инструмент «Распределение объектов» и его кучи особенно эффективны в сочетании с инструментом автоматизации пользовательского интерфейса, где вы можете проводить сотни или тысячи циклов тестирования внутри частей вашего приложения, чтобы выделить даже малейшее накопление памяти. Я начал делать больше такого рода тестов сейчас.
Я думаю, что лучше всего увидеть это в действии, чем описать в тексте, поэтому я рекомендую посмотреть видео для моих классов "Тестирование" и "Настройка производительности" в рамках моего продвинутого курса iOS по iTunes в iTunes U . Я демонстрирую каждый из этих инструментов и то, как я использую их при тестировании своих собственных приложений перед отправкой в App Store. Мои примечания к курсу (в формате VoodooPad ) также описывают это подробно.