Блоки из отдельных выделений памяти не распределяются непрерывно (отдельные вызовы alloc, malloc, new и т. Д.). В противном случае они размещаются непрерывно (из того же вызова malloc, например, new float [30]). Согласно Apple, ваше приложение может быть закрыто для использования памяти, когда вы используете более 20 Мб оперативной памяти. На практике, однако, вы можете добраться до ...
- 260 МБ ОЗУ на iPad 2 (спасибо RobCroll)
- 170–180 МБ оперативной памяти на устройствах с общим объемом оперативной памяти 512 МБ (iPhone 4, iPod touch 4g)
- 40-80 МБ оперативной памяти на устройствах с 256 МБ оперативной памяти (iPad, iPhone 3gs, iPod touch 3g)
- 25 МБ на устройстве с только 128 МБ оперативной памяти (iPhone 3g, iPhone 2g, iPod touch 1g-2g)
Если вам действительно «нужно» столько оперативной памяти для мобильного приложения, вам следует действительно сохранить данные во временный файл и выполнить на нем обработку. Простой способ сделать это - использовать файлы, отображенные в памяти.