Понимание ответственных абонентов в результатах инструментов для Alloc - PullRequest
0 голосов
/ 29 ноября 2011

Я использую инструменты, чтобы узнать, что потребляет больше памяти. Я всегда получаю Живые байты и общие байты одинаковыми. Я полагаю, что в моем коде не произошло большого освобождения. И это плохой знак.

Когда я иду и ищу ответственного звонящего и отслеживаю, что это такое, я не могу его найти. Ответственными абонентами являются _dydldstart и NSStringFromClass.

Это нормальное поведение? Как можно точно узнать ответственного абонента?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2011

«Я всегда получаю живые байты и общие байты одинаковыми».

У меня была эта проблема только потому, что я настраивал NSZombieEnabled в качестве переменных среды, когда тестировал свое приложение в инструментах.После отключения этой переменной проблема исчезла.

NSZombieEnabled Я думаю, что не позволяет освободить никакие переменные.

Я не уверен, что удаление NSZombieEnabled решило проблему.

Я фактически использовал Распределения двумя разными способами,Только при использовании с Leaks Tool у меня возникла проблема.

Другой мой вопрос - это ответ на этот вопрос:

Неопределенность в использовании инструментов для разработки iOS

0 голосов
/ 29 ноября 2011

Причина того, что столбцы «Живые байты» и «Общие байты» совпадают, наиболее вероятно, что инструменты отслеживают только активные распределения.Если вы хотите, чтобы инструменты отслеживали все, нажмите кнопку «Информация» рядом с инструментом «Распределения» в списке инструментов и снимите флажок «Только отслеживать активные распределения».

Открытие расширенного подробного представления показывает стек вызовов для ваших распределений памяти,что облегчит поиск точного ответственного абонента.Выберите «Просмотр»> «Расширенные сведения», чтобы открыть расширенное представление сведений.

Представление «Дерево вызовов» также может помочь вам определить, где вы выделяете память в своем коде.Используйте панель перехода для переключения на представление дерева вызовов.

...