У меня есть проект, который готовится этим летом, и который, возможно, будет включать в себя чрезвычайно большой объем данных изображений для отображения. Мы говорим о сотнях изображений размером 640x480 дюймов в заданном сеансе приложения (масштабированных до меньшего разрешения при отображении) и нескольких очень больших (1280x1024 или выше) изображений за раз.
Я уже проделал некоторую предварительную работу и обнаружил, что типичное изображение размером 640x480 пикселей - это просто тень размером менее 1 МБ в памяти при помещении в UIImageView и отображении ... но очень большие изображения могут быть колоссальными 5+ МБ в некоторых случаях.
Этот проект на самом деле нацелен на iPad, который, по моим тестам на инструментах, имеет примерно 80-100 МБ адресуемой физической памяти.
За исключением деталей, мне нужно начать думать о том, как перемещать огромные объемы данных изображений между виртуальной и физической памятью, сохраняя при этом текучесть и отзывчивость приложения, что обеспечит высокую видимость.
Я, вероятно, на высшем уровне промежуточного уровня в Objective-C ... поэтому я ищу некоторые твердые статьи и советы по следующим вопросам:
1) Ответственное управление UIImage и UIImageView во имя сохранения физической ОЗУ
2) Преимущества использования CGImage поверх UIImage, особенно для огромных изображений, и если будет какое-либо повышение производительности
3) Все, что связано с подкачкой памяти, особенно в отношении изображений
Я буду эпилогом, говоря, что числа, которые я имею выше, возможно, уменьшатся приблизительно на 10 или 15%. Изображения могут или не могут быть в конечном итоге связаны с самим приложением, а не загружаться с внешнего сервера.