2012-02-03 3 views
1

Я знаю, что есть много сообщений об утечках памяти. Теперь я читаю их.Поиск утечек памяти

Но, может быть, некоторые люди могут дать мне несколько советов, как найти, в каком контроллере или даже каком объекте протекает. Потому что теперь я трассировки стека с именами объектов, как 0xcvf34 и responsoble каркас, который является

Leaked Object # Address Size Responsible Library Responsible Frame 
__NSCFString,1 0xcvf34 32 Bytes Foundation -[NSPlaceholderString initWithBytes:length:encoding:] 

И там много более

Что может быть моя стратегия? Потому что для обнаружения утечки NSString действительно сложно, так как есть много кода.

Am использование яблочных инструментов.

+0

Одна очень важная вещь заключается в следующем: 'NSString' вы упоминаете, вероятно, не * утечка * но * утечка *. Вам нужно подойти к трассе выделения, чтобы найти виновника (владельца). – jv42

ответ

3

Выберите линию и посмотрите на боковую панель, которая сообщит вам, к какому классу она принадлежит.

+0

Он не говорит, для какого класса он принадлежит. Может быть, я не сейчас, как настроить правильные настройки на инструменты? – Streetboy

+0

Можно дважды щелкнуть по строке, которая приведет к другой причине, которая может вам помочь. – Vignesh

+0

Затем он показывает ассемблер, который я считаю кодом. Или недоступно – Streetboy

0

Очень часто, когда объекты Фонда начинают течь и, к сожалению, большую часть времени вы ничего не можете с этим поделать.

Если вы хотите, чтобы ваше приложение получило одобрение в AppStore, это правило должно было исправить утечки из самого кода, это значит, что Ответственный будет «YourViewController» вместо, например, «Foundation», поскольку Фундаментальные утечки означают «ошибка Apple, а не ваша».

Посмотрите на этот пост, он может дать вам несколько направлений по этой теме:

http://www.raywenderlich.com/2696/how-to-debug-memory-leaks-with-xcode-and-instruments-tutorial

+1

* Очень часто, когда объекты Фонда начинают течь и, к сожалению, большую часть времени вы ничего не можете с этим поделать. * ??? а) Я не считаю, что это «очень распространено». Проект, над которым я сейчас работаю, имеет ** одну утечку **. b) Исправьте файл. c) Утечки указывают на изображение, которое сделало выделение, а не библиотеку, которая отвечает за дисбаланс ref ref. – justin

+0

Взгляните на второй ответ http://stackoverflow.com/questions/3384537/nsxmlparser-memory-leak-on-ios-4-0-not-nscfstring. То, что я имею в виду, когда говорю «Яблоко» и «очень распространено». Удивительно, что у вас есть одна утечка в вашем проекте, у меня есть 2, связанные с ASIHTTPRequest. В любом случае, я хочу сказать, что я не трачу время, пытаясь найти обходное решение для ошибок библиотек Apple, чтобы уменьшить утечку, если утечка не имеет хорошего количества kb. – codingcthulhu

+0

@codingcthulu Да, я знаю, что Apple выпускает программное обеспечение, которое течет - я уже много лет использую их библиотеки. Эти ошибки приходят, и они уходят. Я хотел сказать, что это просто не очень распространено. Связанная с вами ошибка (естественно) очень изолирована. Несмотря на то, что дефекты проходят, системные библиотеки, безусловно, более чистые, чем обычные программы из приложений. И это исходит от человека, который очень серьезно относится к утечкам. – justin

Смежные вопросы