Используйте всю доступную память на iPad

0

Я пытаюсь сделать приложение, которое использует всю доступную память на iPad, чтобы преднамеренно заглушить ее, чтобы я мог проверить несколько других вещей, когда есть ограниченная память.

В настоящее время я использую этот код, который работает, но Xcode останавливает меня с ошибкой, которую я не могу выделить для региона. (Остановка меня составляет примерно 1,4/4 ГБ.)

while(1)
{
    void *m = malloc(1024*1024);
    memset(m,0,1024*1024);
}

Я хочу использовать всю память, которую я могу, и держаться за эту память, пока я не остановлюсь. Есть ли лучший способ сделать это?

Теги:
xcode

1 ответ

1

Попробуйте использовать mmap с MAP_LOCKED

  • 0
    На самом деле это зависит от вашей цели. Есть минимум два менеджера памяти. Первый - это менеджер пространства пользователя. Он выделяет память из ОС, а затем отдает частями по вашим запросам malloc / mmap. Второй менеджер памяти находится внутри ядра. Любой диспетчер памяти может потерпеть неудачу при запросе выделения. Если ваша цель состоит в том, чтобы протестировать ваше приложение в условиях, когда malloc не может выделить больше памяти для вас, то нет никакой разницы между malloc / mmap с MAP_LOCKED. Если ваша цель - проверить, как работает ОС, когда ваш процесс имеет большой объем резидентной памяти - тогда вам следует использовать mmap с MAP_LOCKED.
  • 0
    Я нашел способ попробовать это, а также несколько вещей, и кажется, что я могу использовать только примерно 1,6 ГБ, пока iOS не завершит его очистку. есть идеи? Спасибо за ответ, это подтолкнуло меня в правильном направлении!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню