В настоящее время у меня есть приложение, в котором я много работаю с изображениями.Я в основном беру изображение размером 320x320 ( или 640x640 на Retina ) и уменьшаю его до 128x128 ( или 256x256 на Retina ), а затем скругляю его углы и применяю глянцевую подсветку.Все делается с использованием графического ядра Core.
В любой момент может быть около 600 изображений, нуждающихся в этой обработке, поэтому я запускаю около 40 при запуске приложения с использованием фонового потока и кэширую их в очередь FIFO.Когда изображение, не находящееся в кэше, нуждается в обработке, я делаю это и добавляю его в конец кэша, отбрасывая первое кэшированное изображение.Если это первое изображение понадобится снова, оно проходит тот же процесс.
Что я хотел бы знать, так это то, будет ли оно более разумным и, в конечном счете, более эффективным, для сохранения отброшенных изображений на диск, а не для воссоздания.их с нуля в следующий раз, когда они понадобятся, так как я мог бы вместо этого просто прочитать их с диска.
Эти изображения также отображаются с использованием CALayer
, и, следовательно, могут быть издержки, когда установлено содержимое слоевиз-за преобразования из UIImage
в CGImage
.Если я сохраню их на диске, я считаю, что они могут быть прочитаны непосредственно как CGImage
?
. Любые идеи и предложения по повышению эффективности этого процесса будут искренне приветствоваться.