как освободить выделения системных библиотек в iphone (Работа с фреймами) - PullRequest
1 голос
/ 23 сентября 2011

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

его снимок экрана, когда мое приложение с 35 изображениями в представлении прокрутки. Если я снова выбираю изображения из пользовательского средства выбора, увеличилось.enter image description here см. Библиотека ответов списка объектов распределения - DYLD. enter image description here enter image description here снимок экрана "мои утечки"

как мы можем освободить эти распределения?пожалуйста, помогите мне?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

То, что у вас нет утечек, не означает, что вы правильно управляете памятью.То, что у вас есть, - это то, что я называю раздуванием памяти - вы сохраняете его дольше, чем нужно.(Утечка - это выделенная память без ссылок. Bloat - это выделенная память, которая имеет ссылку, но не должна иметь ее.)

http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/ даст вам несколько хороших стратегий использования инструментов для их поиска.(Это очень заслуживающий доверия источник, насколько я знаю, он все еще работает в Apple.)

2 голосов
/ 26 сентября 2011

убедитесь, что в вашем приложении нет утечек, и они также исчезнут в инструментах. Конечно, это указывает на системную библиотеку, но это всегда результат ваших ошибок. Выберите один из них и откройте правильный вид. Возможно, он покажет вам правильный стек кода и выделенную строку кода.
Другое, что вы можете сделать: запустить статический анализатор Product-> Analyse, он найдет все (по крайней мере, большинство) ваших утечек;)

...