Как справиться с ограничениями памяти в iOS 8 Photo Extensions?

Я добавил новое расширение для фотографий iOS 8 в свое существующее приложение для редактирования фотографий. Мое приложение имеет довольно сложный конвейер фильтров и должно хранить несколько текстур в памяти одновременно. Тем не менее, на устройствах с 1 ГБ ОЗУ я легко могу обрабатывать 8 Мп изображения.

В расширении, однако, есть намного более высокие ограничения памяти. Мне пришлось уменьшить изображение до 2 Мп, чтобы обработать его без сбоя расширения. Я также понял, что проблемы с памятью возникают только тогда, когда к расширению не подключен отладчик. С ним все отлично работает.

Я сделал несколько экспериментов. Я модифицировалприложение для тестирования бюджета памяти работать в расширении и получил следующие результаты (показывающие объем ОЗУ в МБ, который может быть выделен до сбоя):

╔═══════════════════════╦═════╦═══════════╦══════════════════╗
║        Device         ║ App ║ Extension ║ Ext. (+Debugger) ║
╠═══════════════════════╬═════╬═══════════╬══════════════════╣
║ iPhone 6 Plus (8.0.2) ║ 646 ║       115 ║              645 ║
║ iPhone 5 (8.1 beta 2) ║ 647 ║        97 ║              646 ║
║ iPhone 4s (8.0.2)     ║ 305 ║        97 ║              246 ║
╚═══════════════════════╩═════╩═══════════╩══════════════════╝

Несколько замечаний:

С подключенным отладчиком расширение ведет себя как "нормальное" приложениеНесмотря на то, что 4s имеет только половину общего объема памяти (512 МБ) по сравнению с другими устройствами, он получает те же самые ~ 100 МБ от системы для расширения.

Теперь мой вопрос: как мне работать с этим небольшим объемом памяти в расширении редактирования фотографий? Одна текстура, содержащая 8 МБ (разрешение камеры) RGBA-изображения, съедает только ~ 31 МБ. Какой смысл в этом механизме расширения, если я должен сказать пользователю, что полноразмерное редактирование возможно только при использовании основного приложения?

Один из вас тоже достиг этого барьера? Вы нашли решение, чтобы обойти это ограничение?

Ответы на вопрос(3)

Ваш ответ на вопрос