Освободить слой подложки, чтобы восстановить память? - PullRequest
1 голос
/ 30 мая 2011

У меня есть пользовательский виджет с вкладками, с множеством представлений, чьи объекты CALayer поддерживают слишком много памяти.Я смотрю на выпуск представлений для фоновых вкладок, но было бы проще, если бы я мог просто попросить инфраструктуру выпустить поддерживающий CALayer (куда направляется большая часть памяти) и заново создать его по требованию.Возможно ли это?

Использует ли вложенная иерархия представления больше памяти, чем плоская, потому что объектов CALayer больше, в основном с одинаковыми пикселями?Если представление 100 x 100 занимает память X, означает ли это, что представление 100 x 100 с подпредставлением 100x100 занимает примерно 2X?

Почему Apple не выбрала модель AppKit, в которой программист контролирует, какие представления имеютподдержка базовых слоев анимации?Это потребовало бы намного меньше памяти, чего не хватает в iOS по сравнению с OS X. Спасибо.

1 Ответ

0 голосов
/ 31 мая 2011

Все представления имеют слой поддержки на iOS, и вы не можете это контролировать.

Вы должны просто освободить неактивные представления и перезагрузить их при необходимости.

Причины представления являются слоямиПоддержка iOS заключается в том, что GPU выполняет большую часть тяжелой работы.Это значительно снижает нагрузку на процессор, так что процессор можно использовать для реальной работы или уменьшить для экономии энергии.

...