невозможно выделить 4 буфера по 20 Мб памяти в приложении на ios 4, но может на ios 3 - PullRequest
0 голосов
/ 25 августа 2010

Я написал приложение, скомпилированное для ios 3, которое легко выделяло бы до 100 МБ памяти для обработки изображений. Однако, когда это же приложение было скомпилировано для SDK ios 4, я обнаружил, что оно зависало, когда многие приложения были открыты в фоновом режиме. Когда я убиваю фоновые приложения, приложение работает нормально. Я сократил использование памяти до 70 Мб, и все еще нахожу, что он падает, когда открыто много фоновых приложений.

Почему приложения, скомпилированные для ios 3, могут получить больше памяти на телефонах под управлением ios 4 ?? Есть ли что-то особенное, что вам нужно сделать, чтобы операционная система ios 4 дала вам больше памяти? Есть ли способ заставить фоновые приложения закрываться, чтобы выделить больше памяти для вашего приложения?

Кстати, приложение в некоторой степени использует Core Graphics. Повлияет ли это на способность приложений запрашивать память?

Ответы [ 2 ]

0 голосов
/ 30 октября 2010

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

Расскажите подробнее о том, как вы распределяете эту память. Вы обращаете внимание на предупреждения о нехватке памяти?

0 голосов
/ 25 августа 2010

Учитывая ваше описание, ваше приложение выдвигало конверт выделения памяти на iOS 3.x, но заходит слишком далеко в 4.x, вероятно, потому что более новая операционная система использует больше памяти.

Единственное решениеэто использовать меньше памяти.Это действительно настолько просто.Вы не можете контролировать, сколько памяти будет использовать базовая ОС для запуска процессов.Единственное, что вы можете контролировать - это ваше приложение и объем памяти, который вы выделяете, чтобы не потерпеть крах.

...