В первом случае вы отслеживаете только оперативные распределения, потому что шаблон «Утечки» настраивает инструмент распределения таким образом. Во втором случае вы отслеживаете как живое, так и выделенное распределение. (Как сказал CocoaFu).
Оба полезны, но по несколько иным причинам.
Только отслеживание оперативных выделений (обычно в сочетании с Heapshot Analysis) является отличным способом анализа постоянного роста кучи в вашем приложении. Как только вы знаете, что происходит вокруг навсегда, вы можете выяснить, почему и посмотреть, есть ли способы оптимизировать его.
Отслеживание всех распределений, живых и мертвых, является очень эффективным средством отслеживания полосы пропускания распределения. Вы можете сортировать по общему количеству байтов и начинать с самого большого #. Посмотрите на все точки распределения (нажмите на маленькую стрелку рядом с меткой в категории выбранной строки) и посмотрите, откуда все распределения.
Например, ваш график показывает, что за этот период времени было выделено 147 байт объемом 1,27 МБ - 9218. Все были свободны () d [хорошо!], Но это все еще представляет собой кучу работы по выделению, заполнению данными (предположительно) и освобождению каждого из них. Это может быть проблемой, а может и нет.
(Чтобы представить это в перспективе, я использовал эту технику для оптимизации приложения. Просто сосредоточившись на сокращении количества переходных процессов - недолговечных - распределений, я смог сделать первичные алгоритмы приложения в 5 раз быстрее и сократить использование памяти на 85%. Оказывается, приложение копировало строки много, много раз.)
<Ч />
Не уверен, почему ваше приложение упало, как вы описали. Поскольку это предупреждение памяти, вы должны увидеть, что выделяется чаще всего.
Имейте в виду, что если у вас включено обнаружение зомби, это потребует много дополнительной памяти.