Заставить iOS исчерпать память - PullRequest
2 голосов
/ 21 февраля 2012

Последние 4 часа я потратил на то, чтобы у моего iPad не хватило памяти, и я просто не могу этого сделать.

О, ирония.

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

if (tempArray == nil)
    tempArray = [NSMutableArray array];

NSData *data = [NSData dataWithBytes:malloc(10000000) length:10000000];

[tempArray addObject:data];

Я запускаю это каждый кадр (30 раз в секунду). В конце концов, malloc просто возвращает NULL, но я никогда не вижу предупреждения памяти, как видят мои тестеры. tempArray получает объекты NSData, добавленные к нему.

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

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Вы можете смоделировать ситуацию с нехваткой памяти при использовании симулятора, параметр можно найти в меню «Аппаратное обеспечение» симулятора iOS.

2 голосов
/ 21 февраля 2012

Попробуйте загрузить большое изображение несколько раз и никогда не выпускайте его, так же, как вы в настоящее время делаете с NSData.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...