Итак, у меня есть карта с наложенной кучей MKPolygonViews. Когда я надеваю пару, он немного пыхтит, а затем, если я помещаю их все в системы, отправляет didReceiveMemoryWarning системе, на которую я ответил, удаляя оверлеи.
Теперь мне стало интересно, сколько памяти фактически используется, когда это происходит, это всего лишь 10 МБ реальной памяти и 100 МБ виртуальной памяти. Приложение SMS в то время использовало 30 МБ памяти и работало нормально. Есть и другие приложения, такие как почта, использующая больше, чем мое приложение. SpringBoard поднимается на 5 МБ, поэтому ничего особенного. Это также работает на iPhone 4, так что должно быть достаточно памяти (мои расчеты около 256 МБ все еще свободны).
После удаления оверлеев отпечаток памяти уменьшается только на 1 МБ, при повторном включении он увеличивается на 1 МБ, поэтому ничего необычного.
Так что же происходит? Предупреждение о памяти исходит из графической памяти или чего-то еще? Его производительность с этими оверлеями ограничена графическим процессором? Когда все они включены, при перемещении используется около 60%, но это не объясняет плохую производительность.
Любое направление к ответу будет оценено.
РЕДАКТИРОВАТЬ: Springboards Виртуальная память увеличивается до 450 МБ с включенными оверлеями и, как только она достигает 512 МБ, отправляет предупреждение памяти. Это является причиной проблемы? Общий объем виртуальной машины всегда превышает 512 МБ, поэтому он должен использовать флэш-память для виртуальной машины и, следовательно, не должен вызывать предупреждение о памяти