Почему CALayer выделяет всю эту память и как ее отследить? - PullRequest
0 голосов
/ 15 декабря 2011

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

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

stack trace

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

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

1 Ответ

0 голосов
/ 15 декабря 2011

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

...