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