2011-12-14 2 views
0

Я использую инструмент Allocations, пытаясь очистить свое испорченное использование памяти.Почему CALayer выделяет всю эту память и как ее отслеживать?

В соответствии с рекомендациями Apple я делаю снимки при повторном выполнении действия, чтобы освободить память. По большей части она работает хорошо, но я в тупик этот:

stack trace

Это распределение 464KB где-то в CALayer дисплей, который никогда не будет вычищен. Хуже всего то, что это непоследовательно - это не происходит сразу (в этом случае это произошло на 10-й итерации моего повторного действия, и число менялось). Обычный рост кучи за действие составляет менее 20 КБ (все еще чистка), но это действительно выделяется. Я не могу найти ни одного шаблона, когда это произойдет, или почему.

Как я могу отслеживать его?

ответ

0

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

+0

Что-то вроде этого - мое лучшее предположение ... но я не понимаю, что его отслеживать: отображение не отображается во время других итераций, и я не вижу никаких видов или контроллеров представления остался в распределении. –

+0

В вашем приложении может отображаться несколько разных итераций. – hotpaw2